2013-04-26 39 views
0

我有一個名爲MySQL的複製與intergrity另一個空表約束上

 Seats 
ID Number Region_ID Venue_ID 


    seatreservation 
ID Flag seat_ID reservation_ID 

表現在seatreservation表是空的,但有reservation_ID作爲外鍵到另一個表。所以我想從Seats.ID中複製內容並將其放在seatreservation.seat_ID中,例如Region_ID是= 2。如果我使用INSERT語句 ,如:

INSERT INTO seatreservation (seat_ID) SELECT ID FROM seat WHERE venue_ID = 2;

它不會工作,因爲reservation_ID上seatreservation不能爲空(參照完整性)。有沒有辦法從Seats.ID中填充seat_ID列,同時也爲循環中的所有reservation_IDs插入例如「1」以避免null?我需要幫助來擴展sql語句或其他方法。

回答

4
INSERT INTO seatreservation (seat_ID, reservation_ID) 
SELECT ID, 1 FROM seat WHERE venue_ID = 2; 
+0

你先生Shibormot是救命!謝謝。 – Undisputed007 2013-04-27 09:41:42

+0

因此,例如,如果我想添加一個額外的字段並輸入:可以作爲值我可以做這樣的事情嗎? INSERT INTO seatreservation(seat_ID,reservation_ID,Flag) SELECT ID,1'Available'FROM seat WHERE venue_ID = 2; 但它不工作。請向我解釋您的查詢以及解析器如何解釋1值用於保留,但無法解釋用於標記的可用字符串。 – Undisputed007 2013-04-27 09:49:39

+0

@FrankSMallville,你的「Flag」欄是什麼類型?什麼是錯誤信息? – shibormot 2013-04-27 18:31:15