]> git.mjollnir.org Git - moodle.git/commitdiff
Initial version from Les Kopari - les_kopari@yahoo.com
authormoodler <moodler>
Fri, 14 Mar 2003 08:22:37 +0000 (08:22 +0000)
committermoodler <moodler>
Fri, 14 Mar 2003 08:22:37 +0000 (08:22 +0000)
lib/db/oci8po.sql [new file with mode: 0755]

diff --git a/lib/db/oci8po.sql b/lib/db/oci8po.sql
new file mode 100755 (executable)
index 0000000..594cef0
--- /dev/null
@@ -0,0 +1,633 @@
+rem   DRAFT DRAFT DRAFT DRAFT - untested\r
+\r
+set echo on pagesize 60\r
+\r
+spool s\r
+\r
+rem Conversion:\r
+rem   remove all ` around table names\r
+rem   change int to number\r
+rem   change varchar to varchar2\r
+rem   replace auto_increment with primary key, create sequence and trigger\r
+rem   move not null from before deault to after\r
+rem   delete primary key lines\r
+rem   delete type=MyISAM\r
+rem   turn comment clause into comment statement\r
+rem   delete unique key, replace with column constraint\r
+\r
+rem\r
+rem Table structure for table config\r
+rem\r
+\r
+drop TABLE prefix_config;\r
+CREATE TABLE prefix_config (\r
+  id number(10) primary key,\r
+  name varchar2(255) default '' not null constraint unq_name unique,\r
+  value varchar2(255) default '' not null\r
+);\r
+\r
+COMMENT on table prefix_config is 'Moodle configuration variables';\r
+\r
+drop sequence p_config_seq;\r
+create sequence p_config_seq;\r
+\r
+create or replace trigger p_config_trig\r
+  before insert on prefix_config\r
+  referencing new as new_row\r
+  for each row\r
+  begin\r
+    select p_config_seq.nextval into :new_row.id from dual;\r
+  end;\r
+.\r
+/\r
+\r
+insert into prefix_config (name,value) values ('Name1','Value1');\r
+insert into prefix_config (name,value) values ('Name2','Value2');\r
+insert into prefix_config (name,value) values ('Name3','Value3');\r
+\r
+rem testing unique column constraint on name: this should fail\r
+insert into prefix_config (name,value) values ('Name1','Value4');\r
+\r
+\r
+select id,substr(name,1,20) name,\r
+       substr(value,1,22) value\r
+  from prefix_config order by 1,2;\r
+\r
+rem --------------------------------------------------------\r
+\r
+rem\r
+rem Table structure for table course\r
+rem\r
+\r
+drop TABLE prefix_course;\r
+CREATE TABLE prefix_course (\r
+  id number(10) primary key,\r
+  category number(10) default '0' not null,\r
+  password varchar2(50) default '' not null,\r
+  fullname varchar2(254) default '' not null,\r
+  shortname varchar2(15) default '' not null,\r
+  summary varchar2(254) not null,\r
+  format varchar2(10) default 'weeks' not null\r
+    constraint check_format check (format in ('weeks','social','topics')),\r
+  modinfo varchar2(254)  not null,\r
+  newsitems number(5) default '1' not null,\r
+  teacher varchar2(100) default 'Teacher' not null,\r
+  teachers varchar2(100) default 'Teachers' not null,\r
+  student varchar2(100) default 'Student' not null,\r
+  students varchar2(100) default 'Students' not null,\r
+  guest number(2) default '0' not null,\r
+  startdate number(10) default '0' not null,\r
+  numsections number(5) default '1' not null,\r
+  showrecent number(5) default '1' not null,\r
+  marker number(10) default '0' not null,\r
+  timecreated number(10) default '0' not null,\r
+  timemodified number(10) default '0' not null\r
+); \r
+\r
+COMMENT on table prefix_course is 'Moodle prefix course table';\r
+\r
+drop sequence p_course_seq;\r
+create sequence p_course_seq;\r
+\r
+create or replace trigger p_course_trig\r
+  before insert on prefix_course\r
+  referencing new as new_row\r
+  for each row\r
+  begin\r
+    select p_course_seq.nextval into :new_row.id from dual;\r
+  end;\r
+.\r
+/\r
+\r
+insert into prefix_course ( category,password,fullname,shortname,summary,modinfo) values ( 1,'password1','fullname1','shortname1','summary1','modinfo1');\r
+insert into prefix_course ( category,password,fullname,shortname,summary,format,modinfo) values ( 2,'password2','fullname2','shortname2','summary2','social','modinfo2');\r
+insert into prefix_course ( category,password,fullname,shortname,summary,format,modinfo) values ( 2,'password2','fullname2','shortname2','summary2','topics','modinfo2');\r
+\r
+rem this one should fail due to the constraint on format disallowing 'daily'\r
+insert into prefix_course ( category,password,fullname,shortname,summary,format,modinfo) values ( 2,'password2','fullname2','shortname2','summary2','daily','modinfo2');\r
+\r
+select id,\r
+       category,\r
+       substr(password,1,8) password,\r
+       substr(fullname,1,10) fullname,\r
+       substr(shortname,1,20) shortname,\r
+       substr(summary,1,10) summary,\r
+       format,\r
+       substr(modinfo,1,10) modinfo,\r
+       newsitems,\r
+       substr(teacher,1,10) teacher,\r
+       substr(teachers,1,10) teachers,\r
+       substr(student,1,10) student,\r
+       substr(students,1,10) students,\r
+       guest,\r
+       startdate,\r
+       numsections,\r
+       showrecent,\r
+       marker,\r
+       timecreated,\r
+       timemodified\r
+  from prefix_course order by 1,2;\r
+\r
+rem --------------------------------------------------------\r
+\r
+rem\r
+rem Table structure for table course_categories\r
+rem\r
+\r
+drop TABLE prefix_course_categories;\r
+CREATE TABLE prefix_course_categories (\r
+  id number(10) primary key,\r
+  name varchar2(255) default '' not null\r
+);\r
+\r
+COMMENT on table prefix_course_categories is 'Course categories';\r
+\r
+drop sequence p_course_categories_seq;\r
+create sequence p_course_categories_seq;\r
+\r
+create or replace trigger p_course_categories_trig\r
+  before insert on prefix_course_categories\r
+  referencing new as new_row\r
+  for each row\r
+  begin\r
+    select p_course_categories_seq.nextval into :new_row.id from dual;\r
+  end;\r
+.\r
+/\r
+\r
+insert into prefix_course_categories (name) values ('name1');\r
+insert into prefix_course_categories (name) values ('name2');\r
+insert into prefix_course_categories (name) values ('name3');\r
+insert into prefix_course_categories (name) values ('name4');\r
+\r
+select id,substr(name,1,20) name\r
+  from prefix_course_categories\r
+/\r
+\r
+rem --------------------------------------------------------\r
+\r
+rem\r
+rem Table structure for table course_modules\r
+rem\r
+\r
+drop TABLE prefix_course_modules;\r
+CREATE TABLE prefix_course_modules (\r
+  id number(10) primary key,\r
+  course number(10) default '0' not null,\r
+  module number(10) default '0' not null,\r
+  instance number(10) default '0' not null,\r
+  section number(10) default '0' not null,\r
+  added number(10) default '0' not null, \r
+  deleted number(1) default '0' not null,\r
+  score number(4) default '0' not null\r
+);\r
+\r
+COMMENT on table prefix_course_modules is 'prefix_course_modules';\r
+\r
+drop sequence p_course_modules_seq;\r
+create sequence p_course_modules_seq;\r
+\r
+create or replace trigger p_course_modules_trig\r
+  before insert on prefix_course_modules\r
+  referencing new as new_row\r
+  for each row\r
+  begin\r
+    select p_course_modules_seq.nextval into :new_row.id from dual;\r
+  end;\r
+.\r
+/\r
+\r
+insert into prefix_course_modules (course,module,instance,section,added,deleted,score) values (1,1,1,1,1,1,1); \r
+insert into prefix_course_modules (course,module,instance,section,added,deleted,score) values (2,2,2,2,2,2,2); \r
+insert into prefix_course_modules (course,module,instance,section,added,deleted,score) values (3,3,3,3,3,3,3); \r
+insert into prefix_course_modules (course,module,instance,section,added,deleted,score) values (4,4,4,4,4,4,4); \r
+\r
+select id,course,\r
+       module,\r
+       instance,\r
+       section,\r
+       added,\r
+       deleted,\r
+       score\r
+  from prefix_course_modules\r
+/\r
+\r
+rem --------------------------------------------------------\r
+rem\r
+rem Table structure for table course_sections\r
+rem\r
+\r
+drop TABLE prefix_course_sections;\r
+CREATE TABLE prefix_course_sections (\r
+  id number(10) primary key,\r
+  course number(10) default '0' not null,\r
+  section number(10) default '0' not null,\r
+  summary varchar2(254) NOT NULL,\r
+  sequence varchar2(255) default '' not null\r
+);\r
+\r
+COMMENT on table prefix_course_sections is 'prefix_course_sections';\r
+\r
+drop sequence p_course_sections_seq;\r
+create sequence p_course_sections_seq;\r
+\r
+create or replace trigger p_course_sections_trig\r
+  before insert on prefix_course_sections\r
+  referencing new as new_row\r
+  for each row\r
+  begin\r
+    select p_course_sections_seq.nextval into :new_row.id from dual;\r
+  end;\r
+.\r
+/\r
+\r
+insert into prefix_course_sections (course,section,summary,sequence) values (1,1,1,1); \r
+insert into prefix_course_sections (course,section,summary,sequence) values (2,2,2,2); \r
+insert into prefix_course_sections (course,section,summary,sequence) values (3,3,3,3); \r
+insert into prefix_course_sections (course,section,summary,sequence) values (4,4,4,4); \r
+\r
+select id,course,\r
+       section,\r
+       substr(summary,1,20) summary,\r
+       substr(sequence,1,20) sequence\r
+  from prefix_course_sections\r
+/\r
+\r
+rem --------------------------------------------------------\r
+\r
+rem\r
+rem Table structure for table log\r
+rem\r
+\r
+drop TABLE prefix_log;\r
+CREATE TABLE prefix_log (\r
+  id number(10) primary key,\r
+  time number(10) default '0' not null,\r
+  userid number(10) default '0' not null,\r
+  ip varchar2(15) default '' not null,\r
+  course number(10) default '0' not null,\r
+  module varchar2(10) default '' not null,\r
+  action varchar2(15) default '' not null,\r
+  url varchar2(100) default '' not null,\r
+  info varchar2(255) default '' not null\r
+);\r
+\r
+COMMENT on table prefix_log is 'Every action is logged as far as possible.';\r
+\r
+drop sequence p_log_seq;\r
+create sequence p_log_seq;\r
+\r
+create or replace trigger p_log_trig\r
+  before insert on prefix_log\r
+  referencing new as new_row\r
+  for each row\r
+  begin\r
+    select p_log_seq.nextval into :new_row.id from dual;\r
+  end;\r
+.\r
+/\r
+\r
+insert into prefix_log (time,userid,ip,course,module,action,url,info) values (1,1,'ip1',1,'module1','action1','url1','info1'); \r
+insert into prefix_log (time,userid,ip,course,module,action,url,info) values (2,2,'ip2',2,'module2','action2','url2','info2'); \r
+insert into prefix_log (time,userid,ip,course,module,action,url,info) values (3,3,'ip3',3,'module3','action3','url3','info3'); \r
+insert into prefix_log (time,userid,ip,course,module,action,url,info) values (4,4,'ip4',4,'module4','action4','url4','info4'); \r
+\r
+select id,\r
+       time,\r
+       userid,\r
+       substr(ip,1,20) ip,\r
+       course,\r
+       substr(module,1,20) module,\r
+       substr(action,1,20) action,\r
+       substr(url,1,20) url,\r
+       substr(info,1,20) info\r
+  from prefix_log\r
+/\r
+\r
+rem --------------------------------------------------------\r
+\r
+rem\r
+rem Table structure for table log_display\r
+rem\r
+\r
+drop TABLE prefix_log_display;\r
+CREATE TABLE prefix_log_display (\r
+  module varchar2(20) default '' not null,\r
+  action varchar2(20) default '' not null,\r
+  mtable varchar2(20) default '' not null,\r
+  field varchar2(40) default '' not null\r
+) ;\r
+\r
+COMMENT on table prefix_log_display is 'For a particular module/action, specifies a moodle table/field.';\r
+\r
+insert into prefix_log_display (module,action,mtable,field) values ('module1','action1','mtable1','field1'); \r
+insert into prefix_log_display (module,action,mtable,field) values ('module2','action2','mtable2','field2'); \r
+insert into prefix_log_display (module,action,mtable,field) values ('module3','action3','mtable3','field3'); \r
+insert into prefix_log_display (module,action,mtable,field) values ('module4','action4','mtable4','field4'); \r
+insert into prefix_log_display (module,action,mtable,field) values ('module1','action1','mtable1','field1'); \r
+\r
+select substr(module,1,20) module,\r
+       substr(action,1,20) action,\r
+       substr(mtable,1,20) mtable,\r
+       substr(field,1,20) field\r
+  from prefix_log_display\r
+/\r
+\r
+rem --------------------------------------------------------\r
+\r
+rem\r
+rem Table structure for table modules\r
+rem\r
+\r
+drop TABLE prefix_modules;\r
+CREATE TABLE prefix_modules (\r
+  id number(10) primary key,\r
+  name varchar2(20) default '' not null,\r
+  version number(10) default '0' not null,\r
+  cron number(10) default '0' not null,\r
+  lastcron number(10) default '0' not null,\r
+  search varchar2(255) default '' not null\r
+);\r
+\r
+drop sequence p_modules_seq;\r
+create sequence p_modules_seq;\r
+\r
+create or replace trigger p_modules_trig\r
+  before insert on prefix_modules\r
+  referencing new as new_row\r
+  for each row\r
+  begin\r
+    select p_modules_seq.nextval into :new_row.id from dual;\r
+  end;\r
+.\r
+/\r
+insert into prefix_modules (name,version,cron,lastcron,search) values ('name1',1,1,1,'search1'); \r
+insert into prefix_modules (name,version,cron,lastcron,search) values ('name2',2,2,2,'search2'); \r
+insert into prefix_modules (name,version,cron,lastcron,search) values ('name3',3,3,3,'search3'); \r
+insert into prefix_modules (name,version,cron,lastcron,search) values ('name4',4,4,4,'search4'); \r
+\r
+select substr(name,1,20) name,\r
+       version,\r
+       cron,\r
+       lastcron,\r
+       substr(search,1,20) search\r
+  from prefix_modules\r
+/\r
+\r
+rem --------------------------------------------------------\r
+\r
+rem\r
+rem Table structure for table user\r
+rem\r
+\r
+drop TABLE prefix_user;\r
+CREATE TABLE prefix_user (\r
+  id number(10) primary key,\r
+  confirmed number(1) default '0' not null,\r
+  deleted number(1) default '0' not null,\r
+  username varchar2(100) default '' not null constraint unq_username unique,\r
+  password varchar2(32) default '' not null,\r
+  idnumber varchar2(12) default NULL,\r
+  firstname varchar2(20) default '' not null,\r
+  lastname varchar2(20) default '' not null,\r
+  email varchar2(100) default '' not null,\r
+  icq varchar2(15) default NULL,\r
+  phone1 varchar2(20) default NULL,\r
+  phone2 varchar2(20) default NULL,\r
+  institution varchar2(40) default NULL,\r
+  department varchar2(30) default NULL,\r
+  address varchar2(70) default NULL,\r
+  city varchar2(20) default NULL,\r
+  country varchar2(2) default NULL,\r
+  lang varchar2(5) default 'en',\r
+  timezone float default '99' not null,\r
+  firstaccess number(10) default '0' not null,\r
+  lastaccess number(10) default '0' not null,\r
+  lastlogin number(10) default '0' not null,\r
+  currentlogin number(10) default '0' not null,\r
+  lastIP varchar2(15) default NULL,\r
+  secret varchar2(15) default NULL,\r
+  picture number(1) default NULL,\r
+  url varchar2(255) default NULL,\r
+  description varchar2(255),\r
+  mailformat number(1) default '1' not null,\r
+  maildisplay number(2) default '2' not null,\r
+  htmleditor number(1) default '1' not null,\r
+  timemodified number(10) default '0' not null\r
+) ;\r
+\r
+COMMENT on table prefix_user is 'One record for each person';\r
+\r
+drop sequence p_user_seq;\r
+create sequence p_user_seq;\r
+\r
+create or replace trigger p_user_trig\r
+  before insert on prefix_user\r
+  referencing new as new_row\r
+  for each row\r
+  begin\r
+    select p_user_seq.nextval into :new_row.id from dual;\r
+  end;\r
+.\r
+/\r
+insert into prefix_user ( confirmed, deleted, username, password, idnumber, firstname, lastname, email, icq, phone1, phone2, institution, department, address, city, country, lang, timezone, firstaccess, lastaccess, lastlogin, currentlogin, lastIP, secret, picture, url, description, mailformat, maildisplay, htmleditor, timemodified ) values ( 1, 1, 'username1', 'password1', 'idnumber1', 'firstname1', 'lastname1', 'email1', 'icq1', 'phone11', 'phone21', 'institution1', 'department1', 'address1', 'city1', 'c1', 'lang1', 1, 1, 1, 1, 1, 'lastIP1', 'secret1', 1, 'url1', 'description1', 1, 1, 1, 1);\r
+insert into prefix_user ( confirmed, deleted, username, password, idnumber, firstname, lastname, email, icq, phone1, phone2, institution, department, address, city, country, lang, timezone, firstaccess, lastaccess, lastlogin, currentlogin, lastIP, secret, picture, url, description, mailformat, maildisplay, htmleditor, timemodified ) \r
+values ( 2, 2, 'username2', 'password2', 'idnumber2', 'firstname2', 'lastname2', 'email2', 'icq2', 'phone12', 'phone22', 'institution2', 'department2', 'address2', 'city2', 'c2', 'lang2', 2, 2, 2, 2, 2, 'lastIP2', 'secret2', 2, 'url2', 'description2', 2, 2, 2, 2);\r
+insert into prefix_user ( confirmed, deleted, username, password, idnumber, firstname, lastname, email, icq, phone1, phone2, institution, department, address, city, country, lang, timezone, firstaccess, lastaccess, lastlogin, currentlogin, lastIP, secret, picture, url, description, mailformat, maildisplay, htmleditor, timemodified ) values ( 3, 3, 'username3', 'password3', 'idnumber3', 'firstname3', 'lastname3', 'email3', 'icq3', 'phone13', 'phone23', 'institution3', 'department3', 'address3', 'city3', 'c3', 'lang3', 3, 3, 3, 3, 3, 'lastIP3', 'secret3', 3, 'url3', 'description3', 3, 3, 3, 3);\r
+\r
+rem test unique constraint on username: this statement should fail\r
+insert into prefix_user ( confirmed, deleted, username, password, idnumber, firstname, lastname, email, icq, phone1, phone2, institution, department, address, city, country, lang, timezone, firstaccess, lastaccess, lastlogin, currentlogin, lastIP, secret, picture, url, description, mailformat, maildisplay, htmleditor, timemodified ) values ( 4, 4, 'username1', 'password4', 'idnumber4', 'firstname4', 'lastname4', 'email4', 'icq4', 'phone14', 'phone24', 'institution4', 'department4', 'address4', 'city4', 'c4', 'lang4', 4, 4, 4, 4, 4, 'lastIP4', 'secret4', 4, 'url4', 'description4', 4, 4, 4, 4);\r
+\r
+select \r
+substr(id,1,4) id,\r
+substr(confirmed,1,4) confirmed,\r
+substr(deleted,1,4) deleted,\r
+substr(username,1,10) username,\r
+substr(password,1,8) password,\r
+substr(idnumber,1,4) idnumber,\r
+substr(firstname,1,8) firstname,\r
+substr(lastname,1,8) lastname,\r
+substr(email,1,8) email,\r
+substr(icq,1,8) icq,\r
+substr(phone1,1,8) phone1,\r
+substr(phone2,1,8) phone2,\r
+substr(institution,1,8) institution,\r
+substr(department,1,8) department,\r
+substr(address,1,8) address,\r
+substr(city,1,8) city,\r
+substr(country,1,8) country,\r
+substr(lang,1,8) lang,\r
+substr(timezone,1,8) timezone,\r
+substr(firstaccess,1,8) firstaccess,\r
+substr(lastaccess,1,8) lastaccess,\r
+substr(lastlogin,1,8) lastlogin,\r
+substr(currentlogin,1,8) currentlogin,\r
+substr(lastIP,1,8) lastIP,\r
+substr(secret,1,8) secret,\r
+substr(picture,1,8) picture,\r
+substr(url,1,10) url,\r
+substr(description,1,10) description,\r
+mailformat,\r
+maildisplay,\r
+htmleditor,\r
+substr(timemodified,1,4) timemodified \r
+  from prefix_user\r
+/\r
+\r
+rem --------------------------------------------------------\r
+\r
+rem\r
+rem Table structure for table user_admins\r
+rem\r
+\r
+drop TABLE prefix_user_admins;\r
+CREATE TABLE prefix_user_admins (\r
+  id number(10) primary key,\r
+  userid number(10) default '0' not null\r
+);\r
+\r
+COMMENT on table prefix_user_admins is 'One record per administrator user';\r
+\r
+drop sequence p_user_admins_seq;\r
+create sequence p_user_admins_seq;\r
+\r
+create or replace trigger p_user_admins_trig\r
+  before insert on prefix_user_admins\r
+  referencing new as new_row\r
+  for each row\r
+  begin\r
+    select p_user_admins_seq.nextval into :new_row.id from dual;\r
+  end;\r
+.\r
+/\r
+insert into prefix_user_admins (userid) values (1); \r
+insert into prefix_user_admins (userid) values (2); \r
+insert into prefix_user_admins (userid) values (3); \r
+insert into prefix_user_admins (userid) values (4); \r
+\r
+select *\r
+  from prefix_user_admins\r
+/\r
+\r
+rem --------------------------------------------------------\r
+\r
+rem\r
+rem Table structure for table user_students\r
+rem\r
+\r
+drop TABLE prefix_user_students;\r
+CREATE TABLE prefix_user_students (\r
+  id number(10) primary key,\r
+  userid number(10) default '0' not null,\r
+  course number(10) default '0' not null,\r
+  timestart number(10) default '0' not null,\r
+  timeend number(10) default '0' not null,\r
+  time number(10) default '0' not null\r
+);\r
+\r
+drop sequence p_user_students_seq;\r
+create sequence p_user_students_seq;\r
+\r
+create or replace trigger p_user_students_trig\r
+  before insert on prefix_user_students\r
+  referencing new as new_row\r
+  for each row\r
+  begin\r
+    select p_user_students_seq.nextval into :new_row.id from dual;\r
+  end;\r
+.\r
+/\r
+insert into prefix_user_students (userid,course,timestart,timeend,time) values (1,1,1,1,1); \r
+insert into prefix_user_students (userid,course,timestart,timeend,time) values (2,2,2,2,2); \r
+insert into prefix_user_students (userid,course,timestart,timeend,time) values (3,3,3,3,3); \r
+insert into prefix_user_students (userid,course,timestart,timeend,time) values (4,4,4,4,4); \r
+\r
+select *\r
+  from prefix_user_students\r
+/\r
+\r
+\r
+rem --------------------------------------------------------\r
+\r
+rem\r
+rem Table structure for table user_teachers\r
+rem\r
+\r
+drop TABLE prefix_user_teachers;\r
+CREATE TABLE prefix_user_teachers (\r
+  id number(10) primary key,\r
+  userid number(10) default '0' not null,\r
+  course number(10) default '0' not null,\r
+  authority number(10) default '3' not null,\r
+  role varchar2(40) default '' not null\r
+);\r
+\r
+COMMENT on table prefix_user_teachers is 'One record per teacher per course';\r
+\r
+drop sequence p_user_teachers_seq;\r
+create sequence p_user_teachers_seq;\r
+\r
+create or replace trigger p_user_teachers_trig\r
+  before insert on prefix_user_teachers\r
+  referencing new as new_row\r
+  for each row\r
+  begin\r
+    select p_user_teachers_seq.nextval into :new_row.id from dual;\r
+  end;\r
+.\r
+/\r
+insert into prefix_user_teachers (userid,course,authority,role) values (1,1,1,'role1'); \r
+insert into prefix_user_teachers (userid,course,authority,role) values (2,2,2,'role2'); \r
+insert into prefix_user_teachers (userid,course,authority,role) values (3,3,3,'role3'); \r
+insert into prefix_user_teachers (userid,course,authority,role) values (3,3,3,'role3'); \r
+\r
+select *\r
+  from prefix_user_teachers\r
+/\r
+\r
+rem\r
+rem Table structure for table user_admins\r
+rem\r
+\r
+drop TABLE prefix_user_coursecreators;\r
+CREATE TABLE prefix_user_coursecreators (\r
+  id number(10) primary key,\r
+  userid number(10) default '0' not null\r
+);\r
+\r
+COMMENT on table prefix_user_coursecreators is 'One record per course creator';\r
+drop sequence p_user_coursecreators_seq;\r
+create sequence p_user_coursecreators_seq;\r
+\r
+create or replace trigger p_user_coursecreators_trig\r
+  before insert on prefix_user_coursecreators\r
+  referencing new as new_row\r
+  for each row\r
+  begin\r
+    select p_user_coursecreators_seq.nextval into :new_row.id from dual;\r
+  end;\r
+.\r
+/\r
+insert into prefix_user_coursecreators (userid) values (1);\r
+insert into prefix_user_coursecreators (userid) values (2);\r
+insert into prefix_user_coursecreators (userid) values (3);\r
+insert into prefix_user_coursecreators (userid) values (4);\r
+\r
+select *\r
+  from prefix_user_coursecreators\r
+/\r
+rem --------------------------------------------------------\r
+\r
+INSERT INTO prefix_log_display VALUES ('user', 'view', 'user', 'firstname'||' '||'lastname');\r
+INSERT INTO prefix_log_display VALUES ('course', 'view', 'course', 'fullname');\r
+INSERT INTO prefix_log_display VALUES ('course', 'update', 'course', 'fullname');\r
+INSERT INTO prefix_log_display VALUES ('course', 'enrol', 'course', 'fullname');\r
+INSERT INTO prefix_log_display VALUES ('course', 'update', 'course', 'fullname');\r
+\r
+select substr(module,1,20) module,\r
+       substr(action,1,20) action,\r
+       substr(mtable,1,20) mtable,\r
+       substr(field,1,20) field\r
+  from prefix_log_display\r
+/\r
+spool off\r