相关疑难解决方法(0)

如何在执行sql脚本时回显print语句

我们有一个简单的sql脚本需要针对MySQL数据库执行,我们希望在脚本的进度上打印日志语句(例如,将10条记录插入foo或从条形图中删除5条记录).我们如何做到这一点?

  1. 我想知道用于插入/更新/删除语句的语法.
  2. 我如何知道受我的陈述影响的行数.
  3. 我还想控制在脚本顶部使用ECHO off或on命令打印它们.
  4. 该脚本应该可以在Windows/Linux OS上移植.

mysql sql

38
推荐指数
4
解决办法
9万
查看次数

在存储过程中显示消息

如何显示存储过程中的消息?

显示消息是否存在行的正确语法是什么?

在SQL Server中,PRINT在WORKBENCH中显示消息bat ...

CREATE PROCEDURE `new_proced` (
    in myid     int(3)
)
BEGIN
    if not exists (select id from table where id = myid)
then
    show message 'Row no exists';
else
    show message 'Row exists';
end if;
END
Run Code Online (Sandbox Code Playgroud)

mysql stored-procedures mysql-workbench

5
推荐指数
1
解决办法
6万
查看次数

mysql触发器无法正常工作?

我试图创建一个触发器,根据另一个表上的插入条件有条件地插入新行...我似乎无法确定语法.这是我到目前为止:

DELIMETER $$
CREATE TRIGGER overPricedCar
    AFTER INSERT ON cars
    FOR EACH ROW
    BEGIN   
        IF (new.sellPrice > '80000' )THEN
        INSERT INTO listings VALUES(new.carName,'GOLD','0',' ');
        END IF;
    END$$
DELIMETER ;
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我不断收到错误,他们的语法似乎没问题,我不知道我哪里出错了.

编辑

纠正错字后,触发器"起作用".

我已经添加了一个注释,以便在触发器发生时输出.我测试了它,输出消息被打印到屏幕但触发器实际上没有完成插入:

DELIMITER $$
CREATE TRIGGER overPricedCar
    BEFORE INSERT ON cars
    FOR EACH ROW
    BEGIN   
        IF (new.sellPrice > '80000' )THEN
        INSERT INTO listings VALUES(new.carName,'GOLD','0',' ');
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = "New Gold car!"; // this line throws it off
        END IF;
    END$$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

当此触发器运行时,我可以在哪里将要打印的消息放入屏幕?

mysql triggers

3
推荐指数
1
解决办法
3290
查看次数