【发布时间】:2021-07-01 12:19:06
【问题描述】:
我试图为图书 ID 创建一个约束条件,即 BID 之后的剩余 3 个字符必须是 001 到 999。我可以做什么而不是使用 % ?
CREATE TABLE Book
(
[Book ID] CHAR(6),
[Title] VARCHAR(50) NOT NULL,
[Genre] VARCHAR(50) NOT NULL,
[Author] VARCHAR(50) NOT NULL,
[Price] DECIMAL(18,2) NOT NULL,
CONSTRAINT Book_PK PRIMARY KEY ([Book ID]),
CONSTRAINT chk_BookID CHECK ([Book ID] like 'BID%'),
);
【问题讨论】:
-
所以您有意设计您的表格以容纳最多 999 行(做出假设) - 为什么?当书“BID010”被删除时,你预计会发生什么?您有一个差距 - 您是否希望消除或重复使用该差距?为什么不将 Book ID 设为 numeric[3,0] 数据类型并为您的“视觉”需求添加一个计算列?
标签: sql sql-server constraints