1
嗨,我想創建一個MySQL腳本,我可以運行,只要我需要更新我的數據庫。該腳本創建一個表,然後執行一些存儲過程。刪除程序,如果存在mysql
DELIMITER $$
CREATE TABLE IF NOT EXISTS tbl_name (
col1 bigint(20) NOT NULL AUTO_INCREMENT,
col2 varchar(255) NOT NULL,
col3 varchar(64) NOT NULL,
col4 datetime DEFAULT NULL,
PRIMARY KEY (`col1 `),
UNIQUE KEY col2 (`col2`)
) ENGINE=InnoDB AUTO_INCREMENT=572 DEFAULT CHARSET=utf8$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `myproc`(IN username
VARCHAR(255))
BEGIN
DECLARE var1 VARCHAR(64);
DECLARE expirationDate DATETIME;
SET var1 = 12345;
SET expirationDate = DATE_ADD(NOW(), INTERVAL 30 SECOND);
REPLACE INTO tbl_name (col2, col3, col4) VALUES (someval, var1, expirationDate);
END$$
DELIMITER ;
當我第一次運行腳本時,它創建了表並在MySQL Workbench中執行了存儲過程。當我第二次運行同樣的東西時,我得到了錯誤1304程序已經存在。
我在線查看here關於刪除程序,然後再次創建。但是,當我創建過程之前,進入下面的命令,我就CREATE
命令得到一個錯誤代碼爲1064
DROP PROCEDURE IF EXISTS myproc;
CREATE DEFINER=`root`@`localhost` PROCEDURE `myproc`(IN username
VARCHAR(255))
.
.
.
我很新的MySQL和不知道如何,如果它已經存在執行過程。
任何幫助,將不勝感激。
嘿@Bill,謝謝你的回覆。我已經在每個proc的末尾放置分隔符,然後將其更改回分號';' – Naphstor
@Naphstor,請參閱我上面編輯的答案進行一些說明。 –
明白了,謝謝。這樣可行。 – Naphstor