我想在数据库中存储三列,禁止重复输入:
('姓名','位置','数据')
这是我到目前为止所做的事情,但它只强制名称的唯一性。
CREATE TABLE IF NOT EXISTS SomeStuff (
Name VARCHAR(200),
Location VARCHAR(200),
Data LONGTEXT,
UNIQUE INDEX (Name)
)
我想要做的是强制使用名称和位置的唯一组合。即如果我要存储这些条目,我希望所有条目都有效:
Toothbrush , Ohio , (DATA)
Bacon , Ohio , (DATA)
Sandwich , Kansas , (DATA)
Sandwich , Ohio , (DATA)
Bacon , Kansas , (DATA)
但是,如果我尝试存储此条目,我希望它无效:
Bacon , Ohio , (DIFFERENT_DATA) <--Database won't allow this
如何构建表定义来做到这一点?
我定期使用如下所示的行更新(DATA)列:
REPLACE INTO LicenseData (Name, Location, Data)
VALUES ( arg , arg , arg )
在我必须跟踪位置之前,这是有效的,所以现在我无法同时存储( Sandwich , Kansas )
和( Sandwich , Ohio )
。
答案 0 :(得分:3)
您应该为Name, Location
对添加唯一键,例如see here
答案 1 :(得分:3)
我比MySql更了解T-SQL,但也许你可以这样做?
CREATE TABLE IF NOT EXISTS SomeStuff (
Name VARCHAR(200),
Location VARCHAR(200),
Data LONGTEXT,
UNIQUE INDEX (Name, Location)
)