我有一个包含4列的MySQL表
Column Type Null Default
----------------------------------
id int(11) No None AUTO_INCREMENT
col1 int(11) No None
col2 int(11) No None
col3 varchar(20) Yes Null
我用col1,col2,col3创建了一个索引,因为我不想要重复的行。我理解NULL值被认为是不同的,因此表接受重复的行。
什么是最好的选择,所以我可以为col1,col2,col3设置唯一值的行?
答案 0 :(得分:1)
您可以在NOT NULL
上设置col3
并将默认值设置为''
。
答案 1 :(得分:1)
我被教导理解NULL的方式是NULL是状态而不是值。所以你实际上没有NULL的明确值。我实际上会考虑使用空字符串而不是NULL或设置其他默认值。
答案 2 :(得分:0)
如果您希望数据库强制执行它,则没有那么多选项。因为你不能强迫数据库考虑NULL,除了你可以之外的任何东西;
这两个选项都要求您将col3设置为NOT NULL并在insert / select上进行一些值映射。