如果欄位=NaN,就插入陳述句無效不能插入 ,約束怎么寫呢
uj5u.com熱心網友回復:
ALTER TABLE 表名 ADD CONSTRAINT 約束名 CHECK(A<>'NaN')uj5u.com熱心網友回復:
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'。
陳述句已終止。
*/
uj5u.com熱心網友回復:
當然,對于程式來說,不應該由資料庫來把最后一關。而是在保存之前就做好驗證,如果用戶輸入的不是數字,直接提示:您輸入的不是數字。這樣就好了。
不要把全部的事情排到資料庫來,資料庫不應該承受不必要的任務。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/240697.html
標籤:基礎類
上一篇:Android開發
下一篇:求大牛SQL觸發器問題求解
