当其中一个字段为真时,我想在 3 个字段上添加一个唯一索引。即等于1
唯一索引 pkg_box_delivered (package_id, box_id, Delivered) WHERE Delivered = 1;
我需要一个 Alter 语句以及如何将它添加到 Create Table 语句中。
当其中一个字段为真时,我想在 3 个字段上添加一个唯一索引。即等于1
唯一索引 pkg_box_delivered (package_id, box_id, Delivered) WHERE Delivered = 1;
我需要一个 Alter 语句以及如何将它添加到 Create Table 语句中。
您不能在表中的某些行上创建索引 - 只能在表中的所有行上创建索引,而不管值如何。
我需要一个 Alter 语句以及如何将它添加到 Create Table 语句
您使用 ALTER TABLE 更改现有表的定义,而 CREATE TABLE 创建一个表及其字段,因此如果该表已经存在......
ALTER TABLE yourtablename
ADD UNIQUE INDEX pkg_box_delivered (package_id, box_id, delivered);
或者如果它不存在......
CREATE TABLE yourtablename (
package_id INT NOT NULL,
box_id INT NOT NULL,
delivered BOOLEAN,
...
UNIQUE INDEX pkg_box_delivered (package_id, box_id, delivered)
);
正如您不能有选择地将索引应用于某些行一样,您也无法有选择地应用唯一约束。您需要添加一个触发器来强制执行此操作。