我需要创建一个新的空表,其中每个新值都应由服务器使用其列的格式进行验证。例如,###-###-##
,其中每个#
是一个从0到9的数字,它应包含那些-
符号。怎么样?
答案 0 :(得分:5)
使用CHECK
约束:
CREATE TABLE YourTable (
Col1 VARCHAR(10),
CONSTRAINT MyContraint CHECK (Col1 LIKE '[0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9]')
);
答案 1 :(得分:1)
没有。不要那样做!那不行。
如果您有多租户应用程序且不同的客户希望以不同的格式存储该值,您将被困。
最好的方法是在客户端验证模式,并以自由格式存储在数据库中。