我嘗試將一些SQL Server模式更改轉換爲MySQL。我知道MySQL中的CREATE TABLE IF NOT EXISTS
。我不認爲我可以在這裏使用。在MySQL中使用值插入創建冪等表和索引
我想要做的是在MySQL中創建一個帶有索引的表格,然後插入一些值作爲「if not exists」謂詞的一部分。這是我想出了,但它似乎並不奏效:
SET @actionRowCount = 0;
SELECT COUNT(*) INTO @actionRowCount
FROM information_schema.tables
WHERE table_name = 'Action'
LIMIT 1;
IF @actionRowCount = 0 THEN
CREATE TABLE Action
(
ActionNbr INT AUTO_INCREMENT,
Description NVARCHAR(256) NOT NULL,
CONSTRAINT PK_Action PRIMARY KEY(ActionNbr)
);
CREATE INDEX IX_Action_Description
ON Action(Description);
INSERT INTO Action
(Description)
VALUES
('Activate'),
('Deactivate'),
('Specified');
END IF
我可以一次運行它,它會創建表,索引和值。如果我再次運行它,則會出現錯誤:Table Action already exists
。如果表已經存在,我會認爲它根本不會運行。
引導模式時,我使用了這種模式。我如何在MySQL中執行此操作?
一種選擇是使用存儲的過程,見[16年1月14日CREATE PROCEDURE和CREATE FUNCTION語法](https://dev.mysql.com/doc/refman/5.7/en/create-procedure.html)。 – wchiquito