是的,我的SQL提供了这样做的能力。
ALTER TABLE MyTable
ADD UNIQUE KEY `my_unique_key` (`group_id`, `user_id`)
我不知道你用这个表格做些什么,但像这个独特的关键人物一样,它可能是一个强大的候选人,成为会议的主要关键人物。 首要关键也是一个独特的关键。 如果你决定把它作为主要钥匙,那么就采取下列行动:
ALTER TABLE MyTable
ADD PRIMARY KEY (`group_id`, `user_id`)
(如果你收到错误信息,即已经存在主要关键,然后发布<代码>)。 ALTER TABLE MyTable DROP PRIMaire KEY, 然后重复上述指令。
<><>Edit>: 针对用户的评论
您在独特钥匙所涵盖的各栏中不能有相同的非<代码>NUL数值的多行。 因此,例如,在<代码>小组_id = 0和用户_id = 5 上,你不能有两行。 页: 1 但是,如果你使一栏或两栏失去效力,则。 因此,在<代码>组_id ISNUL和用户_id = 1234上,你可以有两条(或更多)行。
Proviso:对通用的MySQL储存发动机(MyISAM和InnoDB)来说,以上都是如此。 MySQL确实有储存发动机,其中NUL
被视为一种独特的价值,但你可能不使用这些发动机。
如果你使一栏或两栏都失效,那么你的独特关键就不能成为主要的关键,主要的关键必须是<代码>栏。 NOT NUL。
请允许我指出,你把这一关键的关键放在了你们身上,现在希望允许在<条码>中登出<>NUL>。 页: 1 我不知道什么数据类型<代码>类别? 此时此刻,我假定目前为<条码>。 你们再也无法把这一关键作为你们的主要关键。 这里,你可以指挥进行预期的改变:
ALTER TABLE MyTable
DROP PRIMARY KEY,
MODIFY group_id INT UNSIGNED,
ADD UNIQUE KEY `my_unique_key_with_nulls` (`group_id`, `user`)