我想將記錄插入表中:
| 用戶型別 | 用戶名 | 有效的 |
|---|---|---|
| 型別1 | 名稱1 | 真的 |
目前我正在使用以下sql代碼:
insert into table_name
select 'certain type', 'a user''s name', 1
但是如果a user's name已經記錄在表中,那會導致UserName列中的名稱重復。
換句話說,如果a user's name沒有出現在UerName列中,我想插入一行記錄。我怎樣才能做到這一點?
uj5u.com熱心網友回復:
如果我理解正確,您想在表中的列中強制執行唯一值。
在這種情況下,您可以對列使用唯一約束,或者如果那是 MSSQL (T-SQL),您可以執行以下操作:
IF NOT EXISTS(SELECT TOP 1 1 FROM table_name WHERE column_name='a user''s name') BEGIN
INSERT INTO table_name (UserType, UserName, VALID) VALUES ('certain type', 'a user''s name', 1)
END
uj5u.com熱心網友回復:
您可以添加一個not exists條件:
insert into t(usertype, username, valid)
select *
from (values
('type1', 'name1', 1),
('type2', 'name2', 2)
) as to_insert(usertype, username, valid)
where not exists (
select 1
from t
where t.username = to_insert.username
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/441805.html
上一篇:測驗兩列中的一列是未知的
下一篇:SearchView游標不可見
