Unpredictable behaviour of BEFORE INSERT trigger

Ford Perfect

I am using MySQL 5.1 to write a Before Insert trigger. For this I want to check the receipt_no column and increment version_no if receipt_no is already in the table.

And I presume if no rows are placed using SELECT INTO this trigger fails which is what I want so the table which has default 0 default value on the column comes through.

But the version no seems to get duplicated. What seems like the problem here?

Table layout is of the form:

`id - auto incr primary key

receipt_no - unique constraint |

version_no - unique constraint |

other unrelevant column`

CREATE TRIGGER `increment_version` BEFORE INSERT ON `my_table` FOR EACH ROW BEGIN

       DECLARE version INTEGER;

       SELECT version_no INTO version FROM my_table WHERE receipt_no = NEW.receipt_no LIMIT 1;

       SET NEW.version_no = version + 1;

END
krokodilko

If there is no record, then the query returns null into version, and NULL + 1 gives NULL.
You need to check whether version is null or not null.
Also use MAX in the query, because you need to retrieve a greatest version number.

CREATE TRIGGER `increment_version` 
BEFORE INSERT ON `my_table` FOR EACH ROW 
BEGIN
   DECLARE version INTEGER;

   SELECT max(version_no) INTO version FROM my_table 
   WHERE receipt_no = NEW.receipt_no 
   ;
   IF version IS NOT NULL THEN
     SET NEW.version_no = version + 1;
   END IF;
END

see this demo: http://www.sqlfiddle.com/#!2/b82c34/1

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Java

SQLite trigger before insert

From Dev

SQL before insert trigger

From Dev

Trigger Before Insert MySql

From Dev

MySQL TRIGGER BEFORE INSERT

From Dev

Explanation of unpredictable behaviour of tee

From Dev

Unpredictable SceneKit behaviour?

From Dev

MySQL Trigger Insert Before Not Firing

From Dev

Create Mysql Trigger before Insert

From Dev

Before insert trigger behavior in mysql

From Dev

Create Mysql Trigger before Insert

From Dev

Oracle trigger before and after insert

From Dev

TRIGGER BEFORE A COMMIT (INSERT OR UPDATE)

From Dev

SQL Server trigger before insert

From Dev

MySQL trigger to UPDATE entire table before INSERT

From Dev

Using IF EXISTS (SELECT ...) in a BEFORE INSERT trigger (Oracle)

From Dev

Using Mysql Trigger BEFORE INSERT for Default Value

From Dev

MySQL trigger to UPDATE entire table before INSERT

From Dev

Why is this BEFORE INSERT trigger not working in MySQL?

From Dev

Using IF EXISTS (SELECT ...) in a BEFORE INSERT trigger (Oracle)

From Dev

Oracle - Trigger BEFORE INSERT not checking constraints

From Dev

MySQL Trigger modify col before insert

From Dev

MySQL - create trigger before insert to replace date

From Dev

Trigger before insert into increments sequence by 2

From Dev

SQL Before Insert Trigger - insert into another table and update foreign key

From Dev

What is the value of a missing column of an INSERT in a BEFORE INSERT Trigger?

From Dev

PLSQL: BEFORE INSERT TRIGGER (check value in column from other table before allowing insert)

From Dev

MySQL trigger for checking values before insert multple times

From Dev

Trigger for checking a given value before INSERT or UPDATE on PostgreSQL

From Dev

How to create a before insert trigger based on previously inserted values in the table

Related Related

  1. 1

    SQLite trigger before insert

  2. 2

    SQL before insert trigger

  3. 3

    Trigger Before Insert MySql

  4. 4

    MySQL TRIGGER BEFORE INSERT

  5. 5

    Explanation of unpredictable behaviour of tee

  6. 6

    Unpredictable SceneKit behaviour?

  7. 7

    MySQL Trigger Insert Before Not Firing

  8. 8

    Create Mysql Trigger before Insert

  9. 9

    Before insert trigger behavior in mysql

  10. 10

    Create Mysql Trigger before Insert

  11. 11

    Oracle trigger before and after insert

  12. 12

    TRIGGER BEFORE A COMMIT (INSERT OR UPDATE)

  13. 13

    SQL Server trigger before insert

  14. 14

    MySQL trigger to UPDATE entire table before INSERT

  15. 15

    Using IF EXISTS (SELECT ...) in a BEFORE INSERT trigger (Oracle)

  16. 16

    Using Mysql Trigger BEFORE INSERT for Default Value

  17. 17

    MySQL trigger to UPDATE entire table before INSERT

  18. 18

    Why is this BEFORE INSERT trigger not working in MySQL?

  19. 19

    Using IF EXISTS (SELECT ...) in a BEFORE INSERT trigger (Oracle)

  20. 20

    Oracle - Trigger BEFORE INSERT not checking constraints

  21. 21

    MySQL Trigger modify col before insert

  22. 22

    MySQL - create trigger before insert to replace date

  23. 23

    Trigger before insert into increments sequence by 2

  24. 24

    SQL Before Insert Trigger - insert into another table and update foreign key

  25. 25

    What is the value of a missing column of an INSERT in a BEFORE INSERT Trigger?

  26. 26

    PLSQL: BEFORE INSERT TRIGGER (check value in column from other table before allowing insert)

  27. 27

    MySQL trigger for checking values before insert multple times

  28. 28

    Trigger for checking a given value before INSERT or UPDATE on PostgreSQL

  29. 29

    How to create a before insert trigger based on previously inserted values in the table

HotTag

Archive