小编Ree*_*els的帖子

使用 Knex 和 MySQL 执行多条语句(变量和迁移)

问题:

我正在尝试向具有数千万行的表添加新列,而不阻塞它。

我知道这里有一些选项,并且我尝试了ALTER TABLENULL和默认值,但是需要很长时间(不可行)并锁定表。

因此,我尝试编写一个迁移脚本,将原始表的结构复制到新表,将新列添加到新表,然后慢慢将旧表数据迁移到新表。

我的问题是 Knex 的数据副本。

我正在本地测试,下面的查询在 Sequel Pro 的 MySQL 版本 5.6.34 中运行得非常好,但我You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '在 Knex 中得到了一个。

knex.schema.raw(`
  SELECT @prevMaxIdMovedRecord;
  SELECT @newMaxIdMovedRecord;
  SELECT maxIdMoved FROM migration_status 
    ORDER BY maxIdMoved DESC
    INTO @prevMaxIdMovedRecord;

  INSERT IGNORE INTO table_copy (field1, newField1)
  SELECT t.field1, 1 FROM table t
    WHERE t.id BETWEEN @prevMaxIdMovedRecord …
Run Code Online (Sandbox Code Playgroud)

mysql database migration knex.js

6
推荐指数
1
解决办法
4822
查看次数

标签 统计

database ×1

knex.js ×1

migration ×1

mysql ×1