Hello.
The query which is works is:
CREATE TABLE `Films` (
`FilmID` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`MovieTitle` TEXT NULL
,`PitchText` TEXT NULL,
`AmountBudgeted` DECIMAL(11, 0) NULL,
`RatingID` INT(11) unsigned ,
`Summary` LONGTEXT NULL,
`ImageName` VARCHAR(50) NULL,
`DateInTheaters` DATETIME NULL,
PRIMARY KEY (`FilmID`),
CONSTRAINT `FK_RatingID` FOREIGN KEY `RatingID` (RatingID)
REFERENCES `FilmsRatings` (`RatingID`) ON DELETE CASCADE
ON UPDATE CASCADE ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE
utf8_general_ci;
See:
http://dev.mysql.com/doc/refman/5.0/en/create-table.html
Lola J. Lee Beno wrote:
> Michael Stassen wrote:
>
>> 1) I'm not sure what you are intending with "(`(not null)`)" in the
>> middle of your foreign key definition, but that isn't valid mysql
>> syntax. See the manual for the correct syntax
>> <http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html>.
>
>
>
> This is from the script that was generated using Mysql Workbench,
> 1.0.3-alpha. I tried it with (null) and (not null); neither worked.
>
>
>> 2) In FilmsRatings, RatingID is defined as INT UNSIGNED, but in Films
>> it is an INT. The manual says
>>
>
>
> I then modified the query as such:
>
> CREATE TABLE `ows`.`Films` (
> `FilmID` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
> `MovieTitle` TEXT NULL,
> `PitchText` TEXT NULL,
> `AmountBudgeted` DECIMAL(11, 0) NULL,
> `RatingID` INT(11) UNSIGNED NULL,
> `Summary` LONGTEXT NULL,
> `ImageName` VARCHAR(50) NULL,
> `DateInTheaters` DATETIME NULL,
> PRIMARY KEY (`FilmID`),
> CONSTRAINT `FK_RatingID` FOREIGN KEY `RatingID` (`(not null)`)
> REFERENCES `ows`.`FilmsRatings` (`RatingID`)
> ON DELETE CASCADE
> ON UPDATE CASCADE
> )
> ENGINE = InnoDB
> CHARACTER SET utf8 COLLATE utf8_general_ci;
>
> No dice.
>
>> 3) Again quoting the manual, "You can use SHOW ENGINE INNODB STATUS
>> to display a detailed explanation of the most recent InnoDB foreign
>> key error in the server."
>
>
>
> Which gives me:
>
> LATEST FOREIGN KEY ERROR
> ------------------------
> 060207 8:33:49 Error in foreign key constraint of table ows/#sql-a8_11:
>
> foreign key (RatingID) references FilmsRatings (RatingID):
> Cannot find an index in the referenced table where the
> referenced columns appear as the first columns, or column types
> in the table and the referenced table do not match for constraint.
> Note that the internal storage type of ENUM and SET changed in
> tables created with >= InnoDB-4.1.12, and such columns in old tables
> cannot be referenced by such columns in new tables.
> See http://dev.mysql.com/doc/mysql/en/InnoDB_foreign_key_constraints.html
> for correct foreign key definition.
>
>
> Which leads me back to the same URL that you gave me. so, it looks like
> I should create an index for FilmsRatings first, and then create the
> table Films - is that correct?
>
>
--
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.NET http://www.ensita.net/
__ ___ ___ ____ __
/ |/ /_ __/ __/ __ \/ / Gleb Paharenko
/ /|_/ / // /\ \/ /_/ / /__ [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]