MySQL 无法识别 DELIMITER

问题描述 投票:0回答:1

我正在尝试创建一个带有前缀的主键自动增量。 我相信我已经找到了该方法,但由于某种原因我无法运行 DELIMITER 语句。 下面的错误显示,(所以基本上它正在执行上面的语句)。

创建表original_tissue_id_sequence(id INT NOT NULL AUTO_INCRMENT PRIMARY KEY)
错误代码:1050。表“original_tissue_id_sequence”已存在

有谁知道我做错了什么可能导致这种情况?我正在寻找类似于“PCO00001、PCO00002...等”的内容。

CREATE TABLE original_tissue (
org_tissue_id VARCHAR(100) NOT NULL PRIMARY KEY DEFAULT '0',
medical_data_id INT NOT NULL,
pathology_id INT NOT NULL,
imaged ENUM('yes', 'no'),
cell_line_created ENUM('yes', 'no'),
sample_taken ENUM('yes', 'no'),
FOREIGN KEY (medical_data_id) REFERENCES medical_data(medical_data_id),
FOREIGN KEY (pathology_id) REFERENCES pathology(pathology_id)
);


CREATE TABLE original_tissue_id_sequence (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
);

DELIMITER !!
CREATE TRIGGER trig_original_tissue_id
BEFORE INSERT ON original_tissue
FOR EACH ROW
BEGIN
    INSERT INTO original_tissue_id_sequence VALUES (NULL);
    SET NEW.org_tissue_id = CONCAT('PCO', LPAD(LAST_INSERT_ID(), 5, '0'));
END !!
DELIMITER ;
mysql triggers delimiter auto-increment
1个回答
0
投票

将此行放在查询的开头:

DROP TABLE IF EXISTS original_tissue CASCADE;

这应该会清除您运行此命令所拥有的现有结构,然后让您重新创建它。

© www.soinside.com 2019 - 2024. All rights reserved.