2015-06-02 3 views
0

У меня есть основная таблица пользователейПочему я не могу назначить внешний ключ этому столбцу?

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 
); 

и в конце концов, у меня есть таблица сделок, однако я не могу назначить внешний ключ для идентификатора пользователя, а

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 в учетных записях или на идентификатор в таблице пользователей, я получаю такую ​​же ошибку в обоих случаях.

Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не удается (. bank#sql-34ec_2, скованность #sql-34ec_2_ibfk_3 FOREIGN KEY (user_id) Лит accounts (user_id))

Как я могу избежать этого , что еще я могу сделать, чтобы получить правильное обращение к конкретным ячейкам?

+0

Показать неисправность stmt u используются. Почему nullable id? – AsConfused

ответ

0

Усечь все таблицы и установить для этого значения внешний ключ.

+0

Спасибо, после того как я усекал все соответствующие таблицы и добавил внешние ключи после этого, он прошел! – Daniel

+0

Хорошо теперь исправьте структуру вашего стола – AsConfused

+0

Если данный ответ помог вам, пожалуйста, сделайте его правильным ответом thks –

0

Ваши типы данных могут отличаться. 10 по сравнению с 11. Показывать код u исполняют

Смежные вопросы