我可以在不引用另一个表的情况下对列进行约束吗?

zsh*_*arp 2 sql constraints lookup-tables

我有一个文本列,应该只有3个可能的字符串中的一个.要对它施加约束,我将不得不引用另一个表.我可以将约束的值直接放在列上而不引用另一个表吗?

Eri*_*ric 5

如果这是SQL Server,OraclePostgreSQL,是的,您可以使用check constraint.

如果它是MySQL,则check constraints被识别但不被强制执行.但是你可以使用enum.如果您需要以逗号分隔的列表,则可以使用set.

然而,这通常是不受欢迎的,因为它绝对不容易维护.最好创建一个查找表,并通过它确保参照完整性.