Mysql 获取错误4239';具有给定名称的触发器已存在';来自NDBCLUSTER

Mysql 获取错误4239';具有给定名称的触发器已存在';来自NDBCLUSTER,mysql,sql,mysql-cluster,database-cluster,Mysql,Sql,Mysql Cluster,Database Cluster,我们正在运行MySQL群集版本: mysql> SELECT VERSION(); +------------------------------+ | VERSION() | +------------------------------+ | 5.6.15-ndb-7.3.4-cluster-gpl | +------------------------------+ 正在尝试创建表 CREATE TABLE xy ( xa VARCHAR(

我们正在运行MySQL群集版本:

mysql> SELECT VERSION();
+------------------------------+
| VERSION()                    |
+------------------------------+
| 5.6.15-ndb-7.3.4-cluster-gpl |
+------------------------------+
正在尝试创建表

CREATE TABLE xy (
  xa VARCHAR(36) NOT NULL DEFAULT '',
  xb VARCHAR(255) NOT NULL,
  xc TIMESTAMP NOT NULL,
  xd VARCHAR(36) DEFAULT NULL,
  xe VARCHAR(36) DEFAULT NULL,
  xf VARCHAR(255) DEFAULT NULL,
  xg VARCHAR(255) DEFAULT NULL,
  xh TEXT,
  xi BIGINT(20) DEFAULT NULL,
  xj VARCHAR(255) DEFAULT NULL,
  xk VARCHAR(255) DEFAULT NULL,
  xl VARCHAR(255) DEFAULT NULL,
  xz VARCHAR(255) DEFAULT NULL,
  xy VARCHAR(255) DEFAULT NULL, 
  PRIMARY KEY (xa)
) engine=ndb;
使我(使用命令行上的直接输入):

并通过文件:

ERROR 1296 (HY000) at line 8: Got error 4239 'Trigger with given name already exists' from NDBCLUSTER
但是没有mysql触发器:

mysql> SHOW triggers;
Empty set (0.00 sec)
没有表格:

mysql> show tables;
Empty set (0.01 sec)
有人有主意吗?

好的,我们有主意了

已到达中的
MaxNoOfTriggers

从:

为每个唯一的哈希索引分配内部更新、插入和删除触发器。(这意味着为每个唯一哈希索引创建三个触发器。)但是,有序索引只需要一个触发器对象。备份还为集群中的每个普通表使用三个触发器对象

集群之间的复制也使用内部触发器

此参数设置群集中触发器对象的最大数量

默认值为768


您是否尝试更改表的名称?我的意思是,“xy”可能已经被MySQL中的某个东西使用了。真名不是xy——它只是匿名;)因此,您为其指定的名称可能已被使用。您确定正在执行正确的文件吗?这真的很奇怪,我以前从未见过这样的错误。我对MySQL复制的了解还不足以做出真正的猜测,但我认为复制实际上是由触发器完成的。我要检查的第一件事是以前是否存在使用该名称的表。如果是这样,也许当它被删除时,它的触发器没有被删除。现在,当尝试创建具有相同名称的表时,DB会自动尝试为其创建复制触发器,并且生成的触发器名称基于表名称,因此会发生冲突。这些触发器不会与
show触发器一起显示,因为它们不是用户创建的触发器。
mysql> show tables;
Empty set (0.01 sec)