MYSQL 工作台。阻止特定插入的触发器

标签 mysql triggers

每次我将其插入表字段时,我都拼命地尝试让数据库将 0 替换为 1。 我有一个名为 Stazione 的字段,其中有“numerodibinari”,我不希望它为零。 我已经尝试过这样的。

Create trigger gestionebinari

Before insert on stazione

for each row

Begin
If (new.'numero di binari'=0) 

then
Set (new.'numero di binari'=1);

但是还是不行。我能做什么?

最佳答案

不能使用单引号来转义列名。请改用反引号 (`)。顺便说一句,列名中的空格不是一个好主意,随机不必要的括号也不是一个好主意。尝试一下

drop table if exists stazione;
create table stazione(`numero di binari` int);

drop trigger if exists gestionebinari;

delimiter $$
Create trigger gestionebinari
Before insert on stazione
for each row
Begin
If new.`numero di binari`=0 
then
Set new.`numero di binari`=1;
end if;
end $$
delimiter ;

insert into stazione values (0);
select * from stazione;

mysql> select * from stazione;
+------------------+
| numero di binari |
+------------------+
|                1 |
+------------------+
1 row in set (0.00 sec)

关于MYSQL 工作台。阻止特定插入的触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47698203/

相关文章:

mysql - mysql错误1442的真正原因是什么?

php - 设计分页界面的最佳方式

mysql - 将 XAMPP 项目移动到真实服务器

mysql - cakephp 和 PDO 限制错误

php - 将 2 个 Mysql 查询合并为一个

sql-server - SQL Server触发器切换Insert、Delete、Update

jQuery 触发器延迟返回

svn - 当特定用户提交通常会触发构建的特定文件时,防止触发 TeamCity 构建

java - MySQL 重启后 Hibernate 应用程序无法连接到 MySQL

mysql - 数据库触发器根据一张表更新另一张表