给数据库表加约束

班长老六哥 2020-12-26 04:05:13
如果字段=NaN,就插入语句无效不能插入 ,约束怎么写呢
...全文
124 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 版主 2020-12-26
  • 打赏
  • 举报
回复
当然,对于程序来说,不应该由数据库来把最后一关。 而是在保存之前就做好验证,如果用户输入的不是数字,直接提示:您输入的不是数字。这样就好了。 不要把全部的事情排到数据库来,数据库不应该承受不必要的任务。
吉普赛的歌 版主 2020-12-26
  • 打赏
  • 举报
回复
NaN 是js 里面的吧, 非数字。 最简单的是把字段类型设置为 int , bigint 等就可以了,根本不需要用到约束, 这样是最合理的做法。 如果一定要弄成字符串, 可以参考下面:
USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL
DROP TABLE t
GO
CREATE TABLE t(
	id INT IDENTITY(1,1) PRIMARY KEY,
	n VARCHAR(50)	
)
GO
ALTER TABLE t ADD CONSTRAINT CK_t_n CHECK ( ISNUMERIC(n)=1 );
GO
INSERT INTO t(n) VALUES ('123');
--(1 行受影响)
GO
INSERT INTO t(n) VALUES ('abc');
/*
INSERT 语句与 CHECK 约束"CK_t_n"冲突。该冲突发生于数据库"tempdb",表"dbo.t", column 'n'。
语句已终止。
*/
雨夹雪 2020-12-26
  • 打赏
  • 举报
回复
ALTER TABLE 表名 ADD CONSTRAINT 约束名 CHECK(A<>'NaN')

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧