0

The version of MySQL is 5.5.

I have a table named "orders":

CREATE TABLE orders
(
  order_num  INT      NOT NULL AUTO_INCREMENT,
  order_date DATETIME NOT NULL ,
  cust_id    INT      NOT NULL ,
  PRIMARY KEY (order_num)
) ENGINE=INNODB;

And I have some data:

INSERT INTO orders(order_num, order_date, cust_id)
VALUES(20005, '2005-09-01', 10001);
INSERT INTO orders(order_num, order_date, cust_id)
VALUES(20006, '2005-09-12', 10003);
INSERT INTO orders(order_num, order_date, cust_id)
VALUES(20007, '2005-09-30', 10004);
INSERT INTO orders(order_num, order_date, cust_id)
VALUES(20008, '2005-10-03', 10005);
INSERT INTO orders(order_num, order_date, cust_id)
VALUES(20009, '2005-10-08', 10001);

Now I create a trigger:

CREATE TRIGGER neworder AFTER INSERT ON orders FOR EACH ROW SELECT NEW.order_num;

but it gives an error:

Not allowed to return a result set from a trigger.

Why?

Pang
  • 9,564
  • 146
  • 81
  • 122
朱可凡
  • 99
  • 2
  • 13
  • well the err msg is rather self explanatory. triggers have no UX aspect or return a result set (to whom) aspect – Drew Oct 04 '16 at 03:27
  • So you can select into a table with an insert wrapper, or into vars. But remember that triggers succeed or fail silently. So the engine gives you a friendly error msg prior to allowing it to be created (which it wasnt) – Drew Oct 04 '16 at 03:33

0 Answers0