Gerald, >You can't add constraints referencing indices that don't exist. >Create your indecies first.
Constraints don't reference indexes, they reference columns. These columns exist. When the table type is MyISAM, the syntax is accepted. When it's InnoDB - it fails. ( This schema was originally on Oracle, where the syntax was valid and acted on.) Ian Hartas wrote: >>Description: >> >> > I have a database schema .sql file which is accepted when run with MyISAM >tables. If I change the tables to be type = InnoDB, then it fails with the error >message: > >mysql -u ts -p hbs <schema_mysql.sql >ERROR 1005 at line 54: Can't create table './hbs/#sql-34ef_f.frm' (errno: 150) > > > >>How-To-Repeat: >> >> > Save this text as schema_mysql.sql and run it as noted in the description > line. > database called 'hbs', user called 'ts' > >/* >** MySQL schema for the Holiay Booking System within FJS. >** >** by Ian Hartas, Kid01. >** >*/ > >drop table if exists ts_proj_team; >drop table if exists ts_resource_mgrs; >drop table if exists ts_entry; >drop table if exists ts_user_details; >drop table if exists ts_project_code_details; >drop table if exists ts_project_details; >drop table if exists ts_team; >drop table if exists ts_programme; >drop table if exists ts_location_entry; >drop table if exists ts_default_location; > >create table ts_team >( > TEAM_ID integer(8) not null primary key > ,TEAM_NAME varchar(30) not null > ,team_admin_email varchar(100) >) type = InnoDB; > >create table ts_programme >( > PROGRAMME_ID integer(8) not null primary key > ,PROGRAMME_NAME varchar(30) not null >) type = InnoDB; > >create table ts_user_details >( > USER_ID varchar(8) not null primary key > ,TEAM_ID integer(8) > ,STANDARD_HOURS float(30,2) > ,USER_NAME varchar(40) not null > ,PASSWORD varchar(20) not null > ,DEFAULT_LOCATION_ID integer(8) > ,ACTIVE CHAR(1) -- check(ACTIVE in ('Y','N')) > ,DESCRIPTION varchar(255) > ,EMAIL_ADDRESS varchar(100) > ,HOURLY_RATE decimal(9,2) > ,ACCESS_LEVEL integer(8) default 0 > ,charge_rate varchar(20) > ,start_date datetime > ,holiday_entitlement decimal(9,2) > ,holiday_taken decimal(9,2) > ,holiday_carry_over decimal(9,2) > ,holiday_bought_sold decimal(9,2) > ,holiday_hours varchar(200) >) type = InnoDB; > >alter table ts_user_details add constraint u_t foreign key (team_id) > references ts_team(team_id); > >create table ts_project_details >( > PROJECT_ID integer(8) not null primary key > ,PROJECT_NAME varchar(60) not null > ,DESCRIPTION varchar(255) > ,ACTIVE CHAR(1) -- check(ACTIVE in ('Y','N')) >) type = InnoDB; > >create table ts_project_code_details >( > PROJECT_CODE_ID integer(8) not null primary key > ,PROJECT_ID integer(8) not null > ,PROJECT_CODE varchar(10) not null > ,PROJECT_CODE_NAME varchar(60) not null > ,DESCRIPTION varchar(255) > ,UTIL_IND CHAR(1) > ,ACTIVE CHAR(1) -- check(ACTIVE in ('Y','N')) >) type = InnoDB; > >alter table ts_project_code_details add constraint pc_t foreign key (project_id) > references ts_project_details(project_id); > >create table ts_proj_team >( > TEAM_ID integer(8) not null > ,PROJECT_ID integer(8) not null >) type = InnoDB; > >alter table ts_proj_team add constraint pt_p foreign key (project_id) > references ts_project_details(project_id); >alter table ts_proj_team add constraint pt_t foreign key (team_id) > references ts_team(team_id); > >create table ts_resource_mgrs >( > TEAM_ID integer(8) not null > ,USER_ID varchar(8) not null >) type = InnoDB; > >alter table ts_resource_mgrs add constraint rm_p foreign key(team_id) > references ts_team(team_id); >alter table ts_resource_mgrs add constraint rm_u foreign key(user_id) > references ts_user_details(user_id); > >create table ts_entry >( > ID integer(38) not null primary key > ,USER_ID varchar(8) not null > ,PROJECT_ID integer(8) > ,PROJECT_CODE_ID integer(8) > ,TEAM_ID integer(8) > ,HOURS FLOAT(30,2) > ,EDATE datetime > ,CDATE datetime > ,MDATE datetime > ,LOCKED CHAR(1) -- check(LOCKED in ('Y','N','D')) > ,UPDATE_HOURS FLOAT(30,2) > ,UPDATE_PROJECT_ID integer(8) > ,UPDATE_PROJECT_CODE_ID integer(8) > ,DESCRIPTION varchar(255) > ,nbhours decimal(9,2) > ,update_nbhours decimal(9,2) >) type = InnoDB; > >alter table ts_entry add constraint e_p foreign key (project_id) > references ts_project_details(project_id); > >alter table ts_entry add constraint ec_p foreign key (project_code_id) > references ts_project_code_details(project_code_id); > >alter table ts_entry add constraint e_u foreign key (user_id) > references ts_user_details(user_id); > > >/* >** Staff movement tracking >*/ > >create table ts_location_entry >( > USER_ID varchar(8) not null > ,LDATE datetime > ,AMPM CHAR(2) > ,LOCATION varchar(40) >) type = InnoDB; > >create table ts_default_location >( > DEFAULT_LOCATION_ID integer(8) not null primary key > ,DEFAULT_LOCATION varchar(40) > ,location_country char(3) >) type = InnoDB; > >create index ts_proj_code_id_idx on ts_project_code_details (project_id); > >create index ts_proj_team_idx on ts_proj_team (team_id, project_id); > >create index ts_entry_index on ts_entry (user_id, edate) ; > >create index loc_ind on ts_location_entry (user_id,ldate,ampm) ; > > ># create sequence next_default_location_id increment by 1 start with 1000; >create table next_default_location_id (id INT NOT NULL); >insert into next_default_location_id values (999); > ># create sequence next_team_id increment by 1 start with 1000; >create table next_team_id (id INT NOT NULL); >insert into next_team_id values (999); > ># create sequence next_programme_id increment by 1 start with 1000; >create table next_programme_id (id INT NOT NULL); >insert into next_programme_id values (999); > ># create sequence next_project_id increment by 1 start with 1000; >drop table if exists next_project_id; >create table next_project_id (id INT NOT NULL); >insert into next_project_id values (999); > ># create sequence next_project_code_id increment by 1 start with 1000; >drop table if exists next_project_code_id; >create table next_project_code_id (id INT NOT NULL); >insert into next_project_code_id values (999); > ># create sequence next_entry_id increment by 1 start with 1000; >drop table if exists next_entry_id; >create table next_entry_id (id INT NOT NULL); >insert into next_entry_id values (999); > > ># End of schema > > > >>Fix: >> >> > None known, other than to remove the "alter table" directives. > > > >>Submitter-Id: Ian Hartas >>Originator: root >>Organization: >> >> > > Fujitsu Services > Westfields House, West Avenue, Kidsgrove, Staffordshire, UK. > > > >>MySQL support: none >>Synopsis: Syntax accepted with MyISAM is reject by InnoDB - Fails on Linux and >>Solaris >>Severity: non-critical >>Priority: low >>Category: mysql >>Class: sw-bug >>Release: mysql-4.1.0-alpha (Source distribution) >>Server: /usr/local/bin/mysqladmin Ver 8.40 Distrib 4.1.0-alpha, for pc-linux on i686 >> >> >Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB >This software comes with ABSOLUTELY NO WARRANTY. This is free software, >and you are welcome to modify and redistribute it under the GPL license > >Server version 4.1.0-alpha-log >Protocol version 10 >Connection Localhost via UNIX socket >UNIX socket /tmp/mysql.sock >Uptime: 5 days 21 hours 41 min 18 sec > >Threads: 1 Questions: 110 Slow queries: 0 Opens: 99 Flush tables: 1 Open tables: >10 Queries per second avg: 0.000 > > >>C compiler: gcc (GCC) 3.2 20020903 (Red Hat Linux 8.0 3.2-7) >>C++ compiler: g++ (GCC) 3.2 20020903 (Red Hat Linux 8.0 3.2-7) >>Environment: >> >> > Linux RedHat 8 and also Solaris 2.6 >System: Linux lifeboat 2.4.18-24.8.0smp #1 SMP Fri Jan 31 06:03:47 EST 2003 i686 i686 >i386 GNU/Linux >Architecture: i686 > >Some paths: /usr/bin/perl /usr/bin/make /usr/bin/gmake /usr/bin/gcc /usr/bin/cc >GCC: Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2/specs >Configured with: ../configure --prefix=/usr --mandir=/usr/share/man >--infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking -- >host=i386-redhat-linux --with-system-zlib --enable-__cxa_atexit >Thread model: posix >gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7) >Compilation info: CC='gcc' CFLAGS='' CXX='g++' CXXFLAGS='' LDFLAGS='' ASFLAGS='' >LIBC: >lrwxrwxrwx 1 root root 14 Jan 29 14:54 /lib/libc.so.6 -> >libc-2.2.93.so >-rwxr-xr-x 1 root root 1235468 Sep 6 2002 /lib/libc-2.2.93.so >-rw-r--r-- 1 root root 2233342 Sep 5 2002 /usr/lib/libc.a >-rw-r--r-- 1 root root 178 Sep 5 2002 /usr/lib/libc.so >Configure command: ./configure > > > > > > -------- End of forwarded message -------- -- regards, Ian Hartas ---------------------------------- Why is it that the word "gullible" isn't in the dictionary? ---------------------------------- -------- End of forwarded message -------- -- regards, Ian Hartas --------------------------------------------- "Pluralitas non est ponenda sine neccesitate" Occam's Razor. --------------------------------------------- -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]