2015-03-13 60 views
0

我有一個管理客戶端的材料請求的應用程序。在這個應用程序中,每個MaterialRequest都必須有一個地址,但是,有時這不會發生,我必須修復它!在表中創建條目並分配給另一個對象的SQL查詢

我的解決方案是創建一個defaultaddress並將其分配給AddressId爲空的訂單。

UPDATE MaterialRequest 
SET AddressId = INSERT INTO Address(Complement) VALUES (''); 
WHERE AddressId is NULL; 

但是,以前的代碼不起作用,我不知道如何在SQL中做類似的事情。

我該怎麼做?

+0

哪個DBMS? sqlserver <> mysql – 2015-03-13 13:30:05

+0

Ops,sqlserver。我現在將修復標籤! – 2015-03-13 13:30:50

+0

你必須分兩步進行。插入地址表,然後將AddressId設置爲新地址的ID。當然,如果你在一個像這樣的Update語句中做了這個,那麼這將使所有的NULL地址指向同一個地址ID,我猜這不是你想要的。我是否認爲你想在Address中爲MaterialRequest中的每一行創建一行爲NULL的行,然後將它們連接起來? – pmbAustin 2015-03-13 13:35:42

回答

0

不要在您的查詢中執行此操作,請在表定義中添加一個默認值。例如:

ALTER TABLE table_name 
MODIFY column_name datatype DEFAULT 'default value' 
相關問題