【发布时间】:2014-06-16 11:07:57
【问题描述】:
我们正在运行 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): Got error 4239 'Trigger with given name already exists' from NDBCLUSTER
并通过文件:
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)
有人有想法吗?
【问题讨论】:
-
您是否尝试更改表的名称?我的意思是,“xy”可能已经被 MySQL 中的某些东西使用了。
-
真名不是xy——只是匿名化了;)
-
你给它的名字可能已经被使用了。
-
你确定你正在执行好的文件吗?真的很奇怪,我以前从未见过这样的错误。
-
我对 MySQL 复制的了解不够,无法做出真正的猜测,但我想复制实际上是由触发器完成的。我要检查的第一件事是以前是否存在同名的表。如果是这样,也许当它以某种方式被删除时,它的触发器没有被删除。现在,当尝试创建同名表时,数据库会自动尝试为其创建复制触发器,并且生成的触发器名称是基于表名的,因此会发生冲突。这些触发器不会与
show triggers一起显示,因为它们不是用户创建的触发器。
标签: mysql sql mysql-cluster database-cluster