Mal*_*ala 1 sql structure unique
我有一个基本上具有以下结构的SQL表:
PK (int, primary key), userID (int), data (varchar 64)
Run Code Online (Sandbox Code Playgroud)
基本上,userID定义的任何用户都可以存储任意数量的短字符串.但是,不允许用户存储两个相同的字符串(尽管用户1和用户2都可以分别存储相同的字符串).如果可能的话,我想在数据库级别实现这个限制,因为IMHO结构约束应该总是在表中,以及在从表中插入/读取数据的程序中.
我唯一能想到的是添加第三列,其中我在每次插入时连接userID和数据,并将该列称为唯一,但这对我来说似乎太"hacky".如果你们其中一个人有更好的方法可以让我把这个约束放在字段上,我愿意完全重组我的表格:)
谢谢!
马拉
听起来您需要在userID和data列上使用复合唯一约束.
像这样:
CONSTRAINT my_contraint_name UNIQUE ([userID], [data])
Run Code Online (Sandbox Code Playgroud)