首先,我知道有很多關於這個主題的帖子,但我檢查的人沒有幫助我,所以我想發佈我的問題。Mysql:無法添加或更新子行:外鍵約束失敗
我正在建立一個網站,人們可以註冊爲用戶,然後爲我填寫一些不同的表格。我有2個表格是「用戶」,另一個是「表格」表格。在用戶表中我有user_id是auto_incremented和這個ID連接到「表格」作爲外鍵。我想通過user_id查看哪些用戶填寫了表單。當我嘗試向數據庫註冊填充表單時,我得到「無法添加或更新子行:外鍵約束失敗」消息。我怎樣才能解決這個問題?
首先,我知道有很多關於這個主題的帖子,但我檢查的人沒有幫助我,所以我想發佈我的問題。Mysql:無法添加或更新子行:外鍵約束失敗
我正在建立一個網站,人們可以註冊爲用戶,然後爲我填寫一些不同的表格。我有2個表格是「用戶」,另一個是「表格」表格。在用戶表中我有user_id是auto_incremented和這個ID連接到「表格」作爲外鍵。我想通過user_id查看哪些用戶填寫了表單。當我嘗試向數據庫註冊填充表單時,我得到「無法添加或更新子行:外鍵約束失敗」消息。我怎樣才能解決這個問題?
如果您已將表單上的user_id設置爲指向用戶表中user_id的外鍵,則在插入表單行時必須提供有效的user_id。
您可以將表格表上的user_id字段設置爲NULL,這意味着它不必設置。
這種情況多發生當存在表數據和您要創建/編輯/刪除foreign_key
或
要讓它foreign_key字段不符合表字段相同的格式
解決方案:
你必須讓你的數據
2的
1)備份或複製)刪除foreign_keys
3),從表 截斷數據4)最後再附上foreign_keys
5)更新數據
我希望它能幫助
ALTER TABLE'form' CHANGE''user_id' INT user_id'(5)NOT NULL DEFAULT NULL MySQL的輸出: #1067 - 'user_id'的默認值無效 – Semih
「NOT NULL DEFAULT NULL」這對我來說看起來不正確。如果您可以粘貼表格結構並查詢您嘗試插入/更新它的表格,則更好。 –
的mysql_query(「CREATE TABLE kullanici( \t USER_ID INT(5)NULL, \t USER_NAME VARCHAR(30)NOT NULL, 密碼VARCHAR(16)NOT NULL, \t E_MAIL VARCHAR(25)NOT NULL, \t Skype_name VARCHAR(16)NOT NULL, \t \t PRIMARY KEY(user_name,user_id))「); \t \t 的mysql_query(「CREATE TABLE形式( FORM_NAME VARCHAR(20)NULL, form_id INT(2)NULL, 庫勒INT(2)NOT NULL, Silahhane INT(2)NULL, 漢INT (2)NULL, Kutuphane int(2)NULL, )「);我不直接在phpmyadmin中添加外鍵。 – Semih