"Morten Gulbrandsen" <[EMAIL PROTECTED]> wrote:
> USE company;
> DROP TABLE IF EXISTS EMPLOYEE;
> CREATE TABLE EMPLOYEE
> (
> # PK
> SSN CHAR(9) NOT NULL,
> # FK
> SUPERSSN CHAR(9),
> DNO INT NOT NULL DEFAULT 1,
> CONSTRAINT EMPPK
> PRIMARY KEY (SSN),
> FOREIGN KEY (SUPERSSN) REFERENCES EMPLOYEE(SSN), # THIS runs
> FOREIGN KEY (DNO) REFERENCES DEPARTMENT(DNUMBER)); # TYPE=InnoDB
>
>
> SHOW CREATE TABLE EMPLOYEE;
> SHOW TABLE STATUS FROM COMPANY LIKE "EMPLOYEE";
>
> ========================================================================
>
>
> USE company;
> DROP TABLE IF EXISTS EMPLOYEE;
> CREATE TABLE EMPLOYEE
> (
> # PK
> SSN CHAR(9) NOT NULL,
> # FK
> SUPERSSN CHAR(9),
> DNO INT NOT NULL DEFAULT 1,
> CONSTRAINT EMPPK
> PRIMARY KEY (SSN),
> FOREIGN KEY (SUPERSSN) REFERENCES EMPLOYEE(SSN), # THIS woun't DO !!!
> FOREIGN KEY (DNO) REFERENCES DEPARTMENT(DNUMBER))TYPE=InnoDB; #
>
>
> SHOW CREATE TABLE EMPLOYEE;
> SHOW TABLE STATUS FROM COMPANY LIKE "EMPLOYEE";
>
>
>
> C:\mysql\bin>mysql < Company_00.sql > out.txt
> ERROR 1005 at line 3: Can't create table '.\company\employee.frm'
> (errno: 150)
>
>
> What can I DO ?
>
>
>
> mysql> SHOW VARIABLES LIKE "have_innodb";
> +---------------+-------+
> | Variable_name | Value |
> +---------------+-------+
> | have_innodb | YES |
> +---------------+-------+
> 1 row in set (0.00 sec)
>
> mysql>
>
Error 150 means that you have wrong foreign key definitions. You must create index on
SUPERSSN, DNO columns:
http://www.mysql.com/doc/en/InnoDB_foreign_key_constraints.html
--
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.net http://www.ensita.net/
__ ___ ___ ____ __
/ |/ /_ __/ __/ __ \/ / Victoria Reznichenko
/ /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED]
/_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.net
<___/ www.mysql.com
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]