数据库创建触发器实现字段不可为空

数据库创建触发器实现字段不可为空,第1张

1、oracle中你说的没错,空字符串['']会被自动解析成[null],所以你的处置是正确的。

2、我不知道你说的另外的数据库是什么,我知道SqlServer是不把空字符串['']自动解析成[null]的,我就给你写个SqlServer的触发器吧。

create trigger test_trigger on 表名 for insert as

declare @tmp varchar(1000)

set @tmp=(select 字段 from inserted)

if @tmp='' update 表名 set 字段=' ' where 主键=(select 主键 from inserted)

---

以上,希望对你有所帮助。

不允许这个字段为空值,写代码的话,在字符类型后面加上就可以了,例如:

create table emp (

id varchar2(10) not null, --这个字段不能为空

name varchar2(10)

)

除了强制设定not null的,建表后,主键、分区字段等都是非空的。

扩展资料:

not null:

comment的作用是给表创建备注,not null 意思是给字段不允许为空,是一个固定的语句表示给表创建的备注不允许为空,如果改为comment null那意思就是可以为空了。

数据库管理系统是数据库系统的核心组成部分,主要完成对数据库的 *** 纵与管理功能,实现数据库对象的创建、数据库存储数据的查询、添加、修改与删除 *** 作和数据库的用户管理、权限管理等。

参考资料来源:百度百科-数据库

上午应该是给你回答类似的问题了

1、isset只要表单有name,那肯定返回true,应该用empty()来判断。

2、数据库虽然设置不能为空,但是表单提交过来的值,在插入的时候,转换为'',即空字符串了,所以还是会插入,如果是null,就不能插入数据库了

因此只需要把isset那里换成!empty()就可以了


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9994375.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存