hi,
I run your code , but worked propertly. I suggested to check the table USERS ,
ROLES, is the column userid / roleid same data type (INT(10) UNSIGNED ) with
your userroles table ?
======================================================
mysql> create table users (userid INT(10) UNSIGNED primary key);
Query OK, 0 rows affected (0.06 sec)
mysql> create table roles (roleid INT(10) UNSIGNED primary key);
Query OK, 0 rows affected (0.06 sec)
mysql> CREATE TABLE `userroles` (
-> `roleid` INT(10) UNSIGNED NOT NULL DEFAULT '0',
-> `userid` INT(10) UNSIGNED NOT NULL DEFAULT '0',
-> PRIMARY KEY (`roleid`, `userid`),
-> INDEX `FK1_user` (`userid`),
-> CONSTRAINT `fk_userid` FOREIGN KEY (`userid`) REFERENCES `users`
-> (`userid`) ON UPDATE CASCADE ON DELETE CASCADE,
-> CONSTRAINT `fk_roleid` FOREIGN KEY (`roleid`) REFERENCES `roles`
-> (`roleid`) ON UPDATE CASCADE ON DELETE CASCADE
-> )
-> COLLATE=utf8_general_ci
-> ENGINE=InnoDB
-> ROW_FORMAT=COMPACT
-> AVG_ROW_LENGTH=0;
Query OK, 0 rows affected (0.08 sec)
mysql>
======================================================
best regards
liuyann
> Date: Sun, 4 Oct 2009 23:47:54 +0530
> Subject: error creating table
> From: [email protected]
> To: [email protected]
>
> Hi,
> I'm trying to create a table with 2 columns both are primary key
> (combined) and both are foreign key as well. I'm getting error cannot
> create table. Here is the sql
>
> CREATE TABLE `userroles` (
> `roleid` INT(10) UNSIGNED NOT NULL DEFAULT '0',
> `userid` INT(10) UNSIGNED NOT NULL DEFAULT '0',
> PRIMARY KEY (`roleid`, `userid`),
> INDEX `FK1_user` (`userid`),
> CONSTRAINT `fk_userid` FOREIGN KEY (`userid`) REFERENCES `users`
> (`userid`) ON UPDATE CASCADE ON DELETE CASCADE,
> CONSTRAINT `fk_roleid` FOREIGN KEY (`roleid`) REFERENCES `roles`
> (`roleid`) ON UPDATE CASCADE ON DELETE CASCADE
> )
> COLLATE=utf8_general_ci
> ENGINE=InnoDB
> ROW_FORMAT=COMPACT
> AVG_ROW_LENGTH=0
>
> --
> Sharique uddin Ahmed Farooqui
> (C++/C# Developer, IT Consultant)
> http://safknw.blogspot.com/
> "Peace" is the Ultimate thing we want.
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe: http://lists.mysql.com/[email protected]
>
_________________________________________________________________
Windows Live: Keep your friends up to date with what you do online.
http://www.microsoft.com/middleeast/windows/windowslive/see-it-in-action/social-network-basics.aspx?ocid=PID23461::T:WLMTAGL:ON:WL:en-xm:SI_SB_1:092010