我想在phpmyadmin中执行一个循环,它在表中插入行。到目前为止,我有:
DELIMITER $$
DROP PROCEDURE IF EXISTS insert_my_rows()
CREATE PROCEDURE insert_my_rows()
BEGIN
DECLARE i INT DEFAULT 376;
WHILE i<405 DO
INSERT INTO wp_term_relationships(object_id,term_taxonomy_id,term_order) VALUES (i,16,0);
SET i=i+1;
END WHILE;
END $$
DELIMITER ;
CALL insert_my_rows()
有了这个,我收到一个错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER$$
DROP PROCEDURE IF EXISTS insert_my_rows()
CREATE PROCEDURE ins' at line 1
答案 0 :(得分:1)
DROP PROCEDURE
语句的语法不正确!
更改
DROP PROCEDURE IF EXISTS insert_my_rows()
到
DROP PROCEDURE IF EXISTS insert_my_rows;
答案 1 :(得分:0)
您需要使用正确的分隔符结束语句。将END
更改为END$$
。
答案 2 :(得分:0)
仅在制作语句块时才必须更改定界符,因此在过程定义期间必须如此。 DROP PROCEDURE
和CALL
语句也需要定界符。
DROP PROCEDURE IF EXISTS insert_my_rows;
DELIMITER $$
CREATE PROCEDURE insert_my_rows()
BEGIN
DECLARE i INT DEFAULT 376;
WHILE i<405 DO
INSERT INTO wp_term_relationships(object_id,term_taxonomy_id,term_order) VALUES (i,16,0);
SET i=i+1;
END WHILE;
END $$
DELIMITER ;
CALL insert_my_rows();
DROP PROCEDURE IF EXISTS insert_my_rows;