相关疑难解决方法(0)

重命名锁定的表

将表迁移到新模式时,我希望确保使用复制和重命名过程将原子切换到新表.因此,我试图重命名一个锁定的表,如下所示:

CREATE TABLE foo_new (...)

-- copy data to new table, might take very long
INSERT INTO foo_new (id,created_at,modified_at)
  SELECT * FROM foo WHERE id <= 3;

LOCK TABLES foo WRITE, foo_new WRITE;

-- quickly copy the tiny rest over
INSERT INTO foo_new (id,created_at,modified_at)
  SELECT * FROM foo WHERE id > 3;

-- now switch to the new table
RENAME TABLE foo TO foo_old, foo_new TO foo;

UNLOCK TABLES;
Run Code Online (Sandbox Code Playgroud)

不幸的是,导致了ERROR 1192 (HY000): Can't execute the given command because you …

mysql mariadb

2
推荐指数
1
解决办法
2206
查看次数

标签 统计

mariadb ×1

mysql ×1