【发布时间】:2015-06-02 13:42:04
【问题描述】:
我有一个主用户表
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
);
每当我尝试从 transactions 表中向 user_id 添加外键以引用帐户中的 user_id 或用户表中的 id 时,我都会遇到相同的错误。
无法添加或更新子行:外键约束失败 (
bank.#sql-34ec_2,约束#sql-34ec_2_ibfk_3外键 (user_id) 参考资料accounts(user_id))
我怎样才能避免这种情况,我还能做些什么来正确引用特定的单元格?
【问题讨论】:
-
显示你正在使用的失败的stmt。为什么可以为空的 id?
标签: mysql database foreign-keys sqlyog