I had the same problem and was going crazy,

the ket/foreign key fields must be exactly the same.

I 'forward' engineered the database with MySQL Workbench and was almost
posting a bug!

Cheers

Claudio

2009/3/26 John Daisley <john.dais...@mypostoffice.co.uk>

> Sorry all, I was being a dummy! Missed the unsigned attribute off the
> foreign key columns on the problem tables.
>
> Regards
>
>
> > Hi,
> >
> > I have the script below to create 5 tables. Three of them create fine but
> > two return an error of 150 which I understand to be a foreign key issue,
> > however I can't see anything wrong with the foreign key statements.
> >
> > Could someone possibly have a look and see if they can identify the issue
> > please? I think I have been looking at it so long now 'I can't see the
> > wood for the trees'.
> >
> > The two  tables which fail are `cube_security` and `cube_measures`. Im
> > running MySQL 5.1.32 on a Windows XP test machine.
> >
> > --------SCRIPT----------
> > SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
> > SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
> > SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
> >
> > CREATE SCHEMA IF NOT EXISTS `cubedoc` DEFAULT CHARACTER SET latin1
> COLLATE
> > latin1_general_ci ;
> > SHOW WARNINGS;
> > USE `cubedoc`;
> >
> > -- -----------------------------------------------------
> > -- Table `cubedoc`.`cubes`
> > -- -----------------------------------------------------
> > DROP TABLE IF EXISTS `cubedoc`.`cubes` ;
> >
> > SHOW WARNINGS;
> > CREATE  TABLE IF NOT EXISTS `cubedoc`.`cubes` (
> >   `idcubes` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT ,
> >   `cube_name` CHAR(30) NOT NULL ,
> >   `cube_kit_location` VARCHAR(100) NOT NULL DEFAULT 'On Development Pc' ,
> >   `Developer` ENUM('John Daisley','Daxa Everitt','Dave Hartley','Rob
> > Dando','Will Morley') NOT NULL ,
> >   PRIMARY KEY (`idcubes`) )
> > ENGINE = InnoDB
> > COMMENT = 'General Cube Data';
> >
> > SHOW WARNINGS;
> >
> > -- -----------------------------------------------------
> > -- Table `cubedoc`.`cube_dimensions`
> > -- -----------------------------------------------------
> > DROP TABLE IF EXISTS `cubedoc`.`cube_dimensions` ;
> >
> > SHOW WARNINGS;
> > CREATE  TABLE IF NOT EXISTS `cubedoc`.`cube_dimensions` (
> >   `idcube_dimensions` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
> >   `idcubes` SMALLINT UNSIGNED NOT NULL ,
> >   `dimension_name` CHAR(30) NOT NULL ,
> >   `level_name` CHAR(30) NOT NULL ,
> >   PRIMARY KEY (`idcube_dimensions`) ,
> >   INDEX `dimensions_cubes_fk` (`idcubes` ASC) ,
> >   CONSTRAINT `dimensions_cubes_fk`
> >     FOREIGN KEY (`idcubes` )
> >     REFERENCES `cubedoc`.`cubes` (`idcubes` )
> >     ON DELETE NO ACTION
> >     ON UPDATE CASCADE)
> > ENGINE = InnoDB
> > COMMENT = 'Cube Dimension Data        ';
> >
> > SHOW WARNINGS;
> >
> > -- -----------------------------------------------------
> > -- Table `cubedoc`.`cube_security`
> > -- -----------------------------------------------------
> > DROP TABLE IF EXISTS `cubedoc`.`cube_security` ;
> >
> > SHOW WARNINGS;
> > CREATE  TABLE IF NOT EXISTS `cubedoc`.`cube_security` (
> >   `idcube_security` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT ,
> >   `idcubes` SMALLINT NOT NULL ,
> >   `dimension` CHAR(30) NOT NULL ,
> >   `level_name` CHAR(30) NOT NULL ,
> >   `restricted_user_group` CHAR(30) NOT NULL ,
> >   `restriction_details` TEXT NOT NULL ,
> >   PRIMARY KEY (`idcube_security`) ,
> >   INDEX `security_idcubes_fk` (`idcubes` ASC) ,
> >   CONSTRAINT `security_idcubes_fk`
> >     FOREIGN KEY (`idcubes` )
> >     REFERENCES `cubedoc`.`cubes` (`idcubes` )
> >     ON DELETE NO ACTION
> >     ON UPDATE CASCADE)
> > ENGINE = InnoDB
> > COMMENT = 'Internal Cube Security';
> >
> > SHOW WARNINGS;
> >
> > -- -----------------------------------------------------
> > -- Table `cubedoc`.`cube_measures`
> > -- -----------------------------------------------------
> > DROP TABLE IF EXISTS `cubedoc`.`cube_measures` ;
> >
> > SHOW WARNINGS;
> > CREATE  TABLE IF NOT EXISTS `cubedoc`.`cube_measures` (
> >   `idcube_measures` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
> >   `idcubes` SMALLINT NOT NULL ,
> >   `measure_name` CHAR(30) NOT NULL ,
> >   `measure_source_calculation` VARCHAR(80) NOT NULL ,
> >   PRIMARY KEY (`idcube_measures`) ,
> >   INDEX `measures_idcubes_fk` (`idcubes` ASC) ,
> >   CONSTRAINT `measures_idcubes_fk`
> >     FOREIGN KEY (`idcubes` )
> >     REFERENCES `cubedoc`.`cubes` (`idcubes` )
> >     ON DELETE NO ACTION
> >     ON UPDATE CASCADE)
> > ENGINE = InnoDB
> > COMMENT = 'Cube Measure Data';
> >
> > SHOW WARNINGS;
> >
> > -- -----------------------------------------------------
> > -- Table `cubedoc`.`cube_changelog`
> > -- -----------------------------------------------------
> > DROP TABLE IF EXISTS `cubedoc`.`cube_changelog` ;
> >
> > SHOW WARNINGS;
> > CREATE  TABLE IF NOT EXISTS `cubedoc`.`cube_changelog` (
> >   `idcube_changelog` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
> >   `idcubes` SMALLINT UNSIGNED NOT NULL ,
> >   `change_date` DATE NOT NULL ,
> >   `version` DECIMAL(4,2) NOT NULL ,
> >   `status` ENUM('Development','User Acceptance','Live','Retired') NOT
> NULL
> > DEFAULT 'Development' ,
> >   `change_call_work_request_no` INT NOT NULL ,
> >   `change_detail` TEXT NOT NULL ,
> >   `actioned_by` ENUM('John Daisley','Daxa Everitt','Dave Hartley','Rob
> > Dando','Will Morley') NOT NULL ,
> >   PRIMARY KEY (`idcube_changelog`) ,
> >   INDEX `changelog_idcubes_fk` (`idcubes` ASC) ,
> >   CONSTRAINT `changelog_idcubes_fk`
> >     FOREIGN KEY (`idcubes` )
> >     REFERENCES `cubedoc`.`cubes` (`idcubes` )
> >     ON DELETE NO ACTION
> >     ON UPDATE CASCADE)
> > ENGINE = InnoDB
> > COMMENT = 'Cube Changes log';
> >
> > SHOW WARNINGS;
> >
> > SET sql_mo...@old_sql_mode;
> > SET foreign_key_chec...@old_foreign_key_checks;
> > SET unique_chec...@old_unique_checks;
> >
> > --------END SCRIPT----------
> >
> > TIA
> > John
> >
> >
> > --
> > MySQL General Mailing List
> > For list archives: http://lists.mysql.com/mysql
> > To unsubscribe:
> > http://lists.mysql.com/mysql?unsub=john.dais...@butterflysystems.co.uk
> >
> >
> > ______________________________________________
> > This email has been scanned by Netintelligence
> > http://www.netintelligence.com/email
> >
> >
>
>
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:
> http://lists.mysql.com/mysql?unsub=claudio.na...@gmail.com
>
>

Reply via email to