1

我正在尝试解决此迁移历史记录问题,但无法使其在 MySQL 中工作

SELECT *
INTO [TempMigrationHistory]
FROM [__MigrationHistory]

DROP TABLE [__MigrationHistory]

EXEC sp_rename 'TempMigrationHistory', '__MigrationHistory'

我将如何在 mySQL 中使用它?

4

2 回答 2

0

并非所有 RDBMS 的行为都相同。您是否考虑过搜索用于创建INSERT语句的 MySQL 语法?例如,

INSERT INTO TempMigrationHistory
            (Col1,
             Col2,
             Col3)
SELECT Col1,
       Col2,
       Col3
FROM   __MigrationHistory 

此外,sp_rename 是一个 SQL Server 存储过程。MySQL 中的等价物是RENAME. 在您的情况下,这可能会起作用:

RENAME TABLE TempMigrationHistory TO __MigrationHistory;
于 2012-03-10T20:47:25.553 回答
0

提供的 SQL Server t-sql 的一个近似等效的 mysql SQL 类似于此处的内容。(显然 field1、field2 是占位符。)

CREATE TABLE `TempMigrationHistory` LIKE `__MigrationHistory`;

INSERT INTO `TempMigrationHistory` (field1, field2)
SELECT field1, field2
FROM `__MigrationHistory`;

DROP TABLE `__MigrationHistory`;

RENAME TABLE `TempMigrationHistory` to `__MigrationHistory`;

注意事项...

在这一系列操作结束时,您似乎完全拥有您开始的东西,所以我对执行这一系列事件的愿望有点困惑,但我想这与您的问题相切。

于 2012-03-11T14:19:52.517 回答