调用过程 sql-tool vscode

Call procedure sql-tool vscode

提问人:Jaafar Melhem 提问时间:1/30/2023 更新时间:1/30/2023 访问量:88

问:

我搞不清问题出在哪里! 该过程已成功创建,但调用引发以下错误:

Cannot read properties of undefined (reading 'undefined')

完整示例:

-- @block
CREATE TABLE index_table(
    id INT AUTO_INCREMENT PRIMARY KEY,
    first_name VARCHAR(50) NOT NULL,
    last_name VARCHAR(50) NOT NULL,
    creat_at TimeSTAMP DEFAULT now()
);


-- @block
INSERT INTO index_table(first_name, last_name)
VALUES ('fname1', 'lname1'),
    ('fname2', 'lname2'),
    ('fname3', 'lname3'),
    ('fname4', 'lname4');

-- @block
DROP PROCEDURE if EXISTS  get_table;
CREATE PROCEDURE get_table() 
BEGIN
SELECT 2 ;
END


-- @block
CALL get_table();
mysql sql 存储过程 vscode-extensions sqltools

评论


答:

0赞 Lajos Arpad 1/30/2023 #1

您错过了更改 .基本上,您需要将 更改为其他内容,因此 的创建将是一个命令,不会与 的内部命令混淆。这是经过测试且有效的代码版本:delimiterdelimiterprocedureprocedure

-- @block
CREATE TABLE index_table(
    id INT AUTO_INCREMENT PRIMARY KEY,
    first_name VARCHAR(50) NOT NULL,
    last_name VARCHAR(50) NOT NULL,
    creat_at TimeSTAMP DEFAULT now()
);


-- @block
INSERT INTO index_table(first_name, last_name)
VALUES ('fname1', 'lname1'),
    ('fname2', 'lname2'),
    ('fname3', 'lname3'),
    ('fname4', 'lname4');

delimiter //

-- @block
DROP PROCEDURE if EXISTS  get_table;
CREATE PROCEDURE get_table() 
BEGIN
SELECT 2 ;
END //

delimiter ;

-- @block
CALL get_table();

评论

0赞 Jaafar Melhem 1/30/2023
错误出在调用过程中...我认为在SQLTools扩展中不需要分隔符.在vs代码中创建过程后,我在MySQL命令行上运行它。它可以毫无问题地工作.在VS代码中,它抛出一个错误!