我希望用户只输入11位数字,如果不输入,sql就会出错,我应该在sql代码中使用什么类型的变量。
我当前的代码:
st.executeUpdate("CREATE TABLE User(idUser numeric(11,0) not NULL,uName char(30), uSurname char (30), uAddress varChar(500), primary key(idUser) )");
最佳答案
如果你想在 MySQL 的数据库端进行这种检查,你可以使用触发器
CREATE TRIGGER tg_bi_user
BEFORE INSERT ON user
FOR EACH ROW
SET NEW.idUser = IF(NEW.idUser BETWEEN 10000000000
AND 99999999999, NEW.idUser, NULL);
诀窍是当NEW.idUser
不在正确的范围内时违反NOT NULL
。如果您使用的是 MySQL 5.5 或更高版本,您还可以使用 SIGNAL
。
这里是SQLFiddle演示。尝试取消最后一条插入语句的注释,看看会不会成功。
关于mysql - sql中的固定数字数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19844664/