Столкнулся с этим на клиенте, когда на винде запрос отработал без ошибок, а на Дебе - заругался.
+ табля + триггер |
CREATE TABLE TBL_TEST_UPD
(
ID INTEGER NOT NULL,
STR_FLD VARCHAR(100),
INT_FLD INTEGER,
CURR_FLD NUMERIC(15,4),
DATE_FLD TIMESTAMP DEFAULT current_timestamp,
CONSTRAINT PK_TBL_TEST_UPD PRIMARY KEY (ID)
USING INDEX PK_TBL_TEST_UPD_IDX
);
GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE
ON TBL_TEST_UPD TO SYSDBA WITH GRANT OPTION;
SET TERM ^ ;
CREATE TRIGGER TBL_TEST_UPD_BI FOR TBL_TEST_UPD ACTIVE
BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(GEN_TBL_TEST_UPD_ID,1);
END^
SET TERM ; ^
|
+ консоль |
leyba@debian93:~$ isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect 'localhost:/home/leyba/development/dbase/TEST_TREE.FDB' user sysdba password 'cooladmin';
Database: 'localhost:/home/leyba/development/dbase/TEST_TREE.FDB', User: SYSDBA
SQL> show db;
Database: localhost:/home/leyba/development/dbase/TEST_TREE.FDB
Owner: SYSDBA
PAGE_SIZE 16384
Number of DB pages allocated = 3062
Number of DB pages used = 344
Number of DB pages free = 2718
Sweep interval = 20000
Forced Writes are ON
Transaction - oldest = 8247
Transaction - oldest active = 8248
Transaction - oldest snapshot = 8248
Transaction - Next = 8252
ODS = 12.0
Database not encrypted
Default Character set: UTF8
SQL> show version;
ISQL Version: LI-V3.0.2.32703 Firebird 3.0
Server version:
Firebird/Linux/Intel/i386 (access method), version "LI-V3.0.2.32703 Firebird 3.0"
Firebird/Linux/Intel/i386 (remote server), version "LI-V3.0.2.32703 Firebird 3.0/tcp (debian93)/P15:C"
Firebird/Linux/Intel/i386 (remote interface), version "LI-V3.0.2.32703 Firebird 3.0/tcp (debian93)/P15:C"
on disk structure version 12.0
SQL> show users;
Users in the database
2 #SYSDBA
SQL> INSERT INTO TBL_TEST_UPD (STR_FLD, INT_FLD, CURR_FLD, DATE_FLD) VALUES ('STR_FLD', 222, 111.11, CURRENT_TIMESTAMP);
Statement failed, SQLSTATE = 22003
arithmetic exception, numeric overflow, or string truncation
-numeric value is out of range
-At trigger 'TBL_TEST_UPD_BI' line: 6, col: 5
SQL> quit;
leyba@debian93:~$
|
Сервак ставил из архива инсталлятором. Апдейты и удаления проходят без проблем, а вот на вставке такая фигня.
Что не так?
=================
Док.
Win7 Ultim x64/Deb 9.2(GNOME, MATE; gtk2) i386:
FB 3.0.2.32703, диалект 3, SS,
Lazarus 1.9(r.57543); FPC 3.1.1 (r.38588), IBX by -Rik-; IBE 2017.4.19.2