为什么我不能将外键分配给此列?

时间:2015-06-02 13:42:05

标签: mysql database foreign-keys sqlyog

我有一个用户主表

create table `users` (
`id` int (10),
`first_name` varchar (192),
`last_name` varchar (192),
`password` varchar (96),
`phone` int (10),
`email` varchar (768),
`date_created` timestamp 
); 

然后我有一个帐户表,外键user_id引用用户主表

create table `accounts` (
`id` int (10),
`user_id` int (11),
`account_number` bigint (12),
`account_type` varchar (192),
`balance` double ,
`currency` varchar (9),
`date_created` timestamp 
); 

最后,我有一个交易表,但是我也无法将外键分配给用户ID

create table `transactions` (
`id` int (10),
`user_id` int (11),
`from_account_id` int (12),
`to_account_id` int (11),
`amount` double ,
`currency` varchar (9),
`timestamp` timestamp 
 ); 

每当我尝试从事务表中向user_id添加外键以引用帐户中的user_id或在users表中引用id时,我都会得到相同的错误。

  

无法添加或更新子行:外键约束失败   (bank#sql-34ec_2,CONSTRAINT #sql-34ec_2_ibfk_3 FOREIGN KEY   (user_id)参考accountsuser_id))

我怎样才能避免这种情况,我还能做些什么才能正确引用特定细胞?

2 个答案:

答案 0 :(得分:0)

截断所有表,然后为此值设置外键。

答案 1 :(得分:0)

您的数据类型可能有所不同。 10对11.显示代码你正在执行