Problem somewhat solved:
I am somewhat thrown by what I stumbled across, but it has to do with the "_"
underscore character. If I run the same below script without the "_", it works
fine. But as soon as I put in the underscore "_" it fails with the error.
This sounds pretty insane? They are definitely different names?
Does anyone have input into this?
Thanks,
CREATE TABLE menu_sequence (id INT NOT NULL);
insert into menu_sequence VALUES (0);
CREATE TABLE MENU_GROUP(id INT NOT NULL,
PRIMARY KEY (id)
) TYPE=INNODB;
CREATE TABLE MENU_GROUPREL(id INT, parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id) REFERENCES parent(id)
ON DELETE CASCADE
) TYPE=INNODB;
-----Original Message-----
From: Scott Purcell [mailto:[EMAIL PROTECTED]
Sent: Thursday, January 27, 2005 11:59 AM
To: V. M. Brasseur; [email protected]
Subject: RE: Cascade problem now error:
Thanks for the info on the command line util. I am new and was unaware of it.
But anyway, I have gone through the docs many more times, and I cannot figure
out where my problem is. Of course the error is a foreign key problem, but I do
not see where. I even am basically using a textbook example here that fails
with the same error:
If someone see a problem, please let me know, I am creating a fresh database
and just running those 30 or so lines below, and it errors with this:
ERROR 1005: Can't create table '.\builder\menu_group_rel.frm' (errno: 150)
mysql>
Sincerely
Scott
CODE:
GRANT ALL PRIVILEGES ON *.* TO [EMAIL PROTECTED] IDENTIFIED BY 'spurcell' WITH
GRANT OPTION;
CREATE DATABASE builder;
use builder;
CREATE TABLE menu_sequence (id INT NOT NULL);
insert into menu_sequence VALUES (0);
CREATE TABLE MENU_GROUP (
id int NOT NULL,
parent_id int NOT NULL DEFAULT '0',
sort int,
visible VARCHAR(1) NOT NULL DEFAULT 'T',
PRIMARY KEY (id),
) TYPE=InnoDB;
CREATE TABLE MENU_GROUP_REL (
menu_type varchar(200),
data_id int NOT NULL,
display_name varchar(250),
link varchar(250),
FOREIGN KEY (data_id) REFERENCES MENU_GROUP(id) ON DELETE CASCADE
) TYPE=InnoDB;
ERRORS
-----Original Message-----
From: V. M. Brasseur [mailto:[EMAIL PROTECTED]
Sent: Thursday, January 27, 2005 11:06 AM
To: [email protected]
Subject: Re: Cascade problem now error:
Have you tried perror yet?
[EMAIL PROTECTED] (ping-300) 120 > perror 150
MySQL error: 150 = Foreign key constraint is incorrectly formed
Cheers,
--V
Scott Purcell wrote:
> Thanks,
> I updated my script and all looks good. But now I get an error when tryng to
> issue this command.
>
> Any ideas?
>
> Thanks,
> Scott
>
>
> mysql> ALTER TABLE MENU_GROUP_REL ADD CONSTRAINT PK_MENU_GROUP_REL FOREIGN
> KEY(d
> ata_id) REFERENCES MENU_GROUP(id) ON DELETE CASCADE;
> ERROR 1005: Can't create table '.\builder\#sql-260_d.frm' (errno: 150)
> mysql>
>
> -> mysql \s
> --------------
> mysql Ver 12.21 Distrib 4.0.15, for Win95/Win98 (i32)
>
> Connection id: 13
> Current database: builder
> Current user: [EMAIL PROTECTED]
> SSL: Not in use
> Server version: 4.0.15-max-debug
> Protocol version: 10
> Connection: localhost via TCP/IP
> Client characterset: latin1
> Server characterset: latin1
> TCP port: 3306
> Uptime: 10 days 1 min 3 sec
>
> Threads: 1 Questions: 364 Slow queries: 0 Opens: 115 Flush tables: 1
> Open t
> ables: 0 Queries per second avg: 0.000 Memory in use: 8324K Max memory
> used:
> 8631K
> --------------
>
>
>
> UPDATED SCRIPT BELOW:
> DROP DATABASE builder;
>
> GRANT ALL PRIVILEGES ON *.* TO [EMAIL PROTECTED] IDENTIFIED BY 'spurcell'
> WITH GRANT OPTION;
>
> // sequence stuff
> // mysql> CREATE TABLE sequence (id INT NOT NULL);
> //mysql> INSERT INTO sequence VALUES (0);
>
> //Use the table to generate sequence numbers like this:
> //mysql> UPDATE sequence SET id=LAST_INSERT_ID(id+1);
> //mysql> SELECT LAST_INSERT_ID();
>
>
> CREATE DATABASE builder;
>
> use builder;
>
> CREATE TABLE menu_sequence (id INT NOT NULL);
> insert into menu_sequence VALUES (0);
>
>
> CREATE TABLE MENU_GROUP (
> id int NOT NULL,
> parent_id int NOT NULL DEFAULT '0',
> sort int,
> visible VARCHAR(1) NOT NULL DEFAULT 'T',
> ) type=INNODB;
> ALTER TABLE MENU_GROUP ADD CONSTRAINT PK_MENU_GROUP PRIMARY KEY(id);
>
> UPDATE menu_sequence SET id=LAST_INSERT_ID(id+1);
> INSERT INTO MENU_GROUP values (last_insert_id(), 0, 1, 'T');
> UPDATE menu_sequence SET id=LAST_INSERT_ID(id+1);
> INSERT INTO MENU_GROUP values (last_insert_id(), 0, 2, 'T');
> UPDATE menu_sequence SET id=LAST_INSERT_ID(id+1);
> INSERT INTO MENU_GROUP values (last_insert_id(), 0, 3, 'T');
> UPDATE menu_sequence SET id=LAST_INSERT_ID(id+1);
> INSERT INTO MENU_GROUP values (last_insert_id(), 0, 4, 'T');
> UPDATE menu_sequence SET id=LAST_INSERT_ID(id+1);
> INSERT INTO MENU_GROUP values (last_insert_id(), 1, 1, 'T');
> UPDATE menu_sequence SET id=LAST_INSERT_ID(id+1);
> INSERT INTO MENU_GROUP values (last_insert_id(), 3, 1, 'T');
> UPDATE menu_sequence SET id=LAST_INSERT_ID(id+1);
> INSERT INTO MENU_GROUP values (last_insert_id(), 4, 1, 'T');
>
>
> CREATE TABLE MENU_TYPE (
> id INT NOT NULL AUTO_INCREMENT,
> attribute_type varchar(200) NOT NULL,
> primary key (id)
> );
> INSERT INTO MENU_TYPE (attribute_type) values ('jsp'), ('menu'), ('cat_name');
>
> CREATE TABLE MENU_GROUP_REL (
> menu_type varchar(200),
> data_id int NOT NULL,
> display_name varchar(250),
> link varchar(250),
> ) type=INNODB;
>
> ALTER TABLE MENU_GROUP_REL ADD CONSTRAINT PK_MENU_GROUP_REL FOREIGN
> KEY(data_id) REFERENCES MENU_GROUP(id) ON DELETE CASCADE;
>
> INSERT INTO MENU_GROUP_REL values (1, 1, 'Company', 'companyInfo.jsp');
> INSERT INTO MENU_GROUP_REL values (3, 2, 'Communities', 'communities');
> INSERT INTO MENU_GROUP_REL values (1, 3, 'Contact', 'contact.jsp');
> INSERT INTO MENU_GROUP_REL values (1, 4, 'Inventory Homes', 'invHomes.jsp');
> INSERT INTO MENU_GROUP_REL values (1, 5, 'About Me', 'about.jsp');
> INSERT INTO MENU_GROUP_REL values (1, 6, 'Customer Service',
> 'custService.jsp');
> INSERT INTO MENU_GROUP_REL values (1, 7, 'Open Sunday', 'opensunday.jsp');
>
>
>
>
>
>
>
> -----Original Message-----
> From: Artem Koltsov [mailto:[EMAIL PROTECTED]
> Sent: Thursday, January 27, 2005 10:29 AM
> To: Scott Purcell; [email protected]
> Subject: RE: cascade on delete problem
>
>
> Hello Scott,
>
> Make sure your tables are InnoDB type:
>
> CREATE TABLE table_name ( table_def ...) ENGINE=InnoDB;
>
> If you have default MyISAM tables, it won't work because they don't support
> foreign keys.
>
>
>>-----Original Message-----
>>From: Scott Purcell [mailto:[EMAIL PROTECTED]
>>Sent: Thursday, January 27, 2005 10:17 AM
>>To: [email protected]
>>Subject: cascade on delete problem
>>
>>
>>Hello,
>>
>>I apologize for a possible simple question, but I am having
>>trouble with the below code.
>>
>>I have three simple tables. In short, "menu_group" has an id,
>>that is referenced in the "menu_group_rel". When a user
>>deletes an id from the "menu_group", I wanted the entry in
>>"menu_group_rel" (data_id) to also be deleted. They act as
>>one piece of data.
>>
>>I have gone through the docs, but when I delete a line from
>>the menu_group, it does NOT delete the entry from the menu_group_rel?
>>
>>Does anyone see anything wrong with the following?
>>
>>Thanks,
>>
>>
>>SQL: #######
>>
>>DROP DATABASE builder2;
>>
>>GRANT ALL PRIVILEGES ON *.* TO [EMAIL PROTECTED] IDENTIFIED
>>BY 'spurcell' WITH GRANT OPTION;
>>
>>CREATE DATABASE builder2;
>>
>>use builder2;
>>
>>CREATE TABLE menu_sequence (id INT NOT NULL);
>>insert into menu_sequence VALUES (0);
>>
>>
>>CREATE TABLE MENU_GROUP (
>> id int NOT NULL,
>> parent_id int NOT NULL DEFAULT '0',
>> sort int,
>> visible VARCHAR(1) NOT NULL DEFAULT 'T',
>>);
>>ALTER TABLE MENU_GROUP ADD CONSTRAINT PK_MENU_GROUP PRIMARY KEY(id);
>>
>>UPDATE menu_sequence SET id=LAST_INSERT_ID(id+1);
>>INSERT INTO MENU_GROUP values (last_insert_id(), 0, 1, 'T');
>>UPDATE menu_sequence SET id=LAST_INSERT_ID(id+1);
>>INSERT INTO MENU_GROUP values (last_insert_id(), 0, 2, 'T');
>>UPDATE menu_sequence SET id=LAST_INSERT_ID(id+1);
>>INSERT INTO MENU_GROUP values (last_insert_id(), 0, 3, 'T');
>>UPDATE menu_sequence SET id=LAST_INSERT_ID(id+1);
>>INSERT INTO MENU_GROUP values (last_insert_id(), 0, 4, 'T');
>>UPDATE menu_sequence SET id=LAST_INSERT_ID(id+1);
>>INSERT INTO MENU_GROUP values (last_insert_id(), 1, 1, 'T');
>>UPDATE menu_sequence SET id=LAST_INSERT_ID(id+1);
>>INSERT INTO MENU_GROUP values (last_insert_id(), 3, 1, 'T');
>>UPDATE menu_sequence SET id=LAST_INSERT_ID(id+1);
>>INSERT INTO MENU_GROUP values (last_insert_id(), 4, 1, 'T');
>>
>>
>>CREATE TABLE MENU_TYPE (
>> id INT NOT NULL AUTO_INCREMENT,
>> attribute_type varchar(200) NOT NULL,
>> primary key (id)
>>);
>>INSERT INTO MENU_TYPE (attribute_type) values ('jsp'),
>>('menu'), ('cat_name');
>>
>>CREATE TABLE MENU_GROUP_REL (
>> menu_type varchar(200),
>> data_id int NOT NULL,
>> display_name varchar(250),
>> link varchar(250),
>>);
>>
>>ALTER TABLE MENU_GROUP ADD CONSTRAINT PK_MENU_GROUP_REL
>>FOREIGN KEY(data_id) REFERENCES MENU_GROUP(id) ON DELETE CASCADE;
>>
>>INSERT INTO MENU_GROUP_REL values (1, 1, 'Company',
>>'companyInfo.jsp');
>>INSERT INTO MENU_GROUP_REL values (3, 2, 'Communities',
>>'communities');
>>INSERT INTO MENU_GROUP_REL values (1, 3, 'Contact', 'contact.jsp');
>>INSERT INTO MENU_GROUP_REL values (1, 4, 'Inventory Homes',
>>'invHomes.jsp');
>>INSERT INTO MENU_GROUP_REL values (1, 5, 'About Me', 'about.jsp');
>>INSERT INTO MENU_GROUP_REL values (1, 6, 'Customer Service',
>>'custService.jsp');
>>INSERT INTO MENU_GROUP_REL values (1, 7, 'Open Sunday',
>>'opensunday.jsp');
>>
>>
>>
>>
>>
>>
>>
>
>
> Attention:
> Any views expressed in this message are those of the individual sender,
> except where the message states otherwise and the sender is authorized to
> state them to be the views of any such entity. The information contained in
> this message and or attachments is intended only for the person or entity to
> which it is addressed and may contain confidential and/or privileged
> material. If you received this in error, please contact the sender and
> delete the material from any system and destroy any copies.
>
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]