我試圖做一個存儲過程調用AddCluster 巫婆走的是參數「標題」和「ALT」MYSQL:存儲過程,插入一行,然後通過LAST_INSERT_ID()選擇它
案例1:
如果'標題'是在數據庫然後只是返回「舊」行!
案例2:
如果 '標題' 是不是在數據庫中,然後,
插上parmerer '標題' 和 'ALT'
再行基本選擇通過LAST_INSERT_ID()添加新行
問題是在案例2它只返回空!
-- --------------------------------------------------------------------------------
-- AddCluster Group Routines
-- --------------------------------------------------------------------------------
DELIMITER $$
CREATE DEFINER=`linkbay_dk`@`%` PROCEDURE `AddCluster`(in in_title varchar(45), in in_alt text)
BEGIN
/* check if 'in_title' is in db */
IF EXISTS
(
SELECT count(*) FROM Cluster
WHERE title=in_title
)
THEN
/* returns old Cluster there is in db */
SELECT * FROM Cluster WHERE title=in_title;
ELSE
INSERT INTO Cluster
(
`id`,
`create_at`,
`title`,
`alt`
)
VALUES
(
null,
NOW(),
in_title,
in_alt
);
/* returns the newly added Cluster */
SELECT * FROM Cluster WHERE id=LAST_INSERT_ID();
END IF;
END$$
試試看不指定ID ... AUTO_INCREMENT已打開,但沒有運氣:( – Voidcode
)如果從命令行運行INSERT和SELECT查詢,它是否按預期工作? – ilanco
我正在使用MySQL Workbench,但是使用SQL編輯器可以使INSERT d針對'集羣'表的SELECT查詢...我可以調用AddCluster(),它在情況1中返回一行,但在情況2中不返回。 – Voidcode