【问题标题】:Trigger with "NEW" doesn't work使用“NEW”触发不起作用
【发布时间】:2012-01-09 15:54:26
【问题描述】:

这是我第一次在 MySQL 上使用触发器。

我有两个不同的表(“users”和“prova”),每当“users”表中有新行时,我想在“prova”中插入一个新行。

创建触发器inserisciemail
在每行插入users
开始
插入到 prova (provaemail)
值(新电子邮件);
结束

“provaemail”字段为空,只有 id 字段被填充(自动递增)。 怎么了?

维托

【问题讨论】:

  • 它应该可以工作。您能否分享您的表模式和“用户”表的 INSERT 语句?你确定users.email 不为空吗?
  • 好的,问题是@符号。如果我使用另一个“简单”字段就可以了...啊!
  • @ 符号?我不认为这应该是一个问题。它有什么问题?您是否发现任何错误?
  • 没有错误。只是一个空旷的领域。但是,如果我将触发器用于用户名字段(而不是电子邮件字段),那就没问题了。
  • 我重复我之前的问题 - 您是否确认电子邮件字段有值并且不为空?

标签: mysql


【解决方案1】:

我将我们的讨论移到这里,因为 SO 建议避免在 cmets 中进行扩展讨论。

所以,感谢您提供的 SQL,但恐怕它们没有包含“prova”的 CREATE TABLE 和在“users”表上运行的 INSERT 语句。

无论如何,我在我的开发环境中创建了“用户”表和触发器。然后我创建了自己的“prova”表版本,如下所示:

CREATE TABLE `prova` (
 `provaemail` VARCHAR(40)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

然后运行下面的插入语句:

INSERT INTO `users` (`id`, `email`) VALUES (1, 'guptaabhay@gmail.com');

并且在“prova”中插入了一个新条目,这里:

mysql> select * from prova;
+----------------------+
| provaemail           |
+----------------------+
| guptaabhay@gmail.com |
+----------------------+
1 row in set (0.00 sec)

所以触发器起作用了!

如果您可以共享“prova”的架构和您的INSERT INTO users 查询,那就太好了,这样我们就可以进一步研究。我确定有些不对劲。

编辑 1

感谢您的插入。他们运行良好,“prova”表现在有以下条目:

mysql> select * from prova;
+-----------------------+
| provaemail            |
+-----------------------+
| genoveffa@dominio.it  |
| peto@dominio.it       |
| test@dominio.it       |
| gianni@dominio.it     |
| nuovissimo@dominio.it |
| new@dominio.it        |
| vit@dominio.it        |
+-----------------------+
8 rows in set (0.00 sec)

所以到目前为止没有什么奇怪的!您为什么不在最后尝试这些步骤:

  1. 创建“用户”表
  2. 创建触发器
  3. 创建“prova”表(使用我上面给出的 CREATE 语句)
  4. 按照http://pastie.org/3166828 的规定触发插入
  5. SELECT * FROM prova;

然后告诉我你看到了什么?

【讨论】:

  • 请参考回复中的EDIT 1
  • 谢谢,我也试过了。一切都好。问题只有当它由 SQLAlchemy(+Plone) 创建一个新行时...啊!
  • SQLAlchemy 和 Plone 对我来说是新的,我真的不能建议他们是否应该破坏你的代码。但是,如果您正在运行 MySQL 引擎,我相信查询应该运行良好,尽管它在哪里运行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-02
  • 2018-10-17
  • 2017-04-22
  • 2011-03-16
  • 2019-01-17
  • 2012-09-04
  • 2013-04-26
相关资源
最近更新 更多