【问题标题】:how to restrict update on a specific column of a table via trigger如何通过触发器限制表的特定列的更新
【发布时间】:2016-11-15 21:44:37
【问题描述】:

我有一个teacher_table,其中包含几列数据,例如teacher_name、teacher_age、teacher_phone 和teacher_gender。

我想创建一个触发器查询,限制用户更新我的teacher_table 中的teacher_gender 列。有什么办法吗?

【问题讨论】:

  • 您使用的是什么数据库?触发器是用一些过程扩展语言实现的,但是每个数据库引擎的过程扩展语言都是不同的。 SQL Server 触发器将与 Oracle 触发器或 MySQL 触发器或其他数据库的触发器完全不同。
  • 我正在使用sql数据库。
  • SQL 是一种语言,而不是数据库。许多数据库的名称中都有“SQL”。例如 SQL Server、MySQL 和 PostgreSQL。您正在使用其中之一吗?还是别的什么?
  • SQL 服务器......
  • 好的。这很有帮助。 teacher 表的主键是什么?有teacher_id 吗?还是 teacher_name 应该是关键?

标签: sql-server database triggers restriction


【解决方案1】:

你可以试试这个:

create trigger teacher_gender_check_update
before update on teacher_table
for each row
begin
    if (old.teacher_gender IS NOT NULL) then
        SIGNAL 'Teacher gender already set'
    end if ;
end;

【讨论】:

    猜你喜欢
    • 2021-08-28
    • 2013-05-21
    • 2012-10-16
    • 2017-09-20
    • 2018-10-05
    • 2014-05-30
    • 1970-01-01
    • 2014-04-02
    • 1970-01-01
    相关资源
    最近更新 更多