新建的触发器保存不住

请问一下,我在数据库里面,新建创建了触发器后,保存后,只保存成sql语句,左侧的触发器目录下面没有它呢;

我理解,应该是像存储过程那样,在触发器目录下,保存住该专用的触发器名称吧,然后随着数据库的需要正常触发就可以了,请问是这样吧,怎么才能保存住它呢;

img

明白了,是在表里面的触发器下面查看,即有

该回答引用ChatGPT-3.5,仅供参考,不保证完全正确

在数据库中创建触发器后,它应该在数据库对象的触发器目录下显示。如果你创建触发器后无法看到它,可能是由于以下原因导致的:

  1. 权限问题:确保你有足够的权限创建触发器,并且可以查看数据库对象的触发器目录。如果你没有足够的权限,可能无法看到触发器。

  2. 数据库连接问题:如果你使用的是数据库管理工具(如 MySQL Workbench、SQL Server Management Studio 等),请检查你的数据库连接是否正确。有时,连接问题可能导致触发器目录无法显示正确的触发器列表。

  3. 刷新对象列表:有些数据库管理工具需要手动刷新对象列表,以显示最新创建的触发器。尝试在触发器目录上右键单击,然后选择"刷新"或类似选项,查看是否能够显示新创建的触发器。

  4. 数据库版本问题:不同的数据库管理系统可能在显示触发器方面有所不同。确保你正在使用的数据库管理工具和数据库版本支持触发器的正确显示。

如果你尝试了上述方法仍然无法解决问题,建议检查数据库管理工具的文档,查看有关触发器显示的特定说明。此外,你还可以尝试使用数据库命令行界面或其他数据库管理工具进行验证,以确定触发器是否实际上已经成功创建。

请注意,具体的解决方法可能会因数据库管理工具和数据库系统的不同而有所不同。如果问题仍然存在,建议咨询相关的数据库管理员或开发人员,他们可能能够提供更具体的帮助和指导。


该回答引用NewBing,仅供参考,不保证完全正确

触发器是一种特殊的存储过程,它可以在某个表上发生指定的数据操作(如插入、更新或删除)时自动执行一些预定义的语句。触发器可以用来实现数据完整性、审计、日志等功能。


在MySQL中,创建触发器的基本语法如下:

CREATE TRIGGER trigger_name
BEFORE | AFTER { INSERT | UPDATE | DELETE }
ON table_name FOR EACH ROW
trigger_body

其中,trigger_name是触发器的名称,BEFOREAFTER指定了触发器的执行时机,INSERTUPDATEDELETE指定了触发器的触发事件,table_name指定了触发器所在的表,trigger_body指定了触发器要执行的语句。


例如,如果我们想要在每次向表student中插入一条记录时,自动更新表class中对应班级的人数,我们可以创建一个如下的触发器:

CREATE TRIGGER update_class_count
AFTER INSERT ON student
FOR EACH ROW
UPDATE class SET count = count + 1 WHERE id = NEW.class_id;

这个触发器的名称是update_class_count,它在每次向表student中插入一条记录后执行,它使用了一个特殊的变量NEW来表示新插入的记录,然后根据新记录的班级编号(class_id)来更新表class中对应班级的人数(count)。


要保存触发器,我们只需要执行创建触发器的语句即可。我们可以使用MySQL命令行客户端、图形界面工具(如Navicat、Workbench等)或者其他支持SQL语句执行的工具来保存触发器。


如果您想要查看更多关于创建和保存触发器的教程和示例,请参考以下链接:

希望这些信息对您有所帮助。如果您还有其他问题,欢迎继续与我交流。😊