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 に答える