将执行过程的结果插入 table
Insert results of execute procedure into a table
CREATE PROCEDURE kassa_ins()
RETURNING int,int,int;
return 1, 2, 3;
END PROCEDURE
CREATE TRIGGER "informix".on_ins_kassa INSERT ON "informix"
.kassa REFERENCING NEW AS n_val
FOR EACH ROW(
INSERT INTO "informix".kassa_log(col1,col2,col3)
VALUES(kassa_ins())
);
SQL Error (-236): Number of columns in INSERT does not match number of VALUES.
如何将程序触发器中的结果插入到另一个 table?
IBM Informix 动态服务器版本 11.70
就像另一个中所说的那样:
[infx1210@tardis ~]$ dbaccess -e dmitriy test.sql
Database selected.
CREATE TABLE "informix".kassa (
col1 INT,
col2 INT,
col3 INT
);
Table created.
CREATE TABLE "informix".kassa_log (
col1 INT,
col2 INT,
col3 INT
);
Table created.
CREATE FUNCTION "informix".kassa_ins()
RETURNING int,int,int;
RETURN 1, 2, 3;
END FUNCTION;
Routine created.
;
CREATE TRIGGER "informix".on_ins_kassa
INSERT ON "informix".kassa
REFERENCING NEW AS n_val
FOR EACH ROW(
INSERT INTO "informix".kassa_log(col1,col2,col3)
SELECT * FROM TABLE(kassa_ins())
);
Trigger created.
INSERT INTO "informix".kassa(col1,col2,col3)
SELECT * FROM TABLE(kassa_ins());
1 row(s) inserted.
SELECT * FROM "informix".kassa;
col1 col2 col3
1 2 3
1 row(s) retrieved.
SELECT * FROM "informix".kassa_log;
col1 col2 col3
1 2 3
1 row(s) retrieved.
Database closed.
[infx1210@tardis ~]$
CREATE PROCEDURE kassa_ins()
RETURNING int,int,int;
return 1, 2, 3;
END PROCEDURE
CREATE TRIGGER "informix".on_ins_kassa INSERT ON "informix"
.kassa REFERENCING NEW AS n_val
FOR EACH ROW(
INSERT INTO "informix".kassa_log(col1,col2,col3)
VALUES(kassa_ins())
);
SQL Error (-236): Number of columns in INSERT does not match number of VALUES.
如何将程序触发器中的结果插入到另一个 table? IBM Informix 动态服务器版本 11.70
就像另一个
[infx1210@tardis ~]$ dbaccess -e dmitriy test.sql
Database selected.
CREATE TABLE "informix".kassa (
col1 INT,
col2 INT,
col3 INT
);
Table created.
CREATE TABLE "informix".kassa_log (
col1 INT,
col2 INT,
col3 INT
);
Table created.
CREATE FUNCTION "informix".kassa_ins()
RETURNING int,int,int;
RETURN 1, 2, 3;
END FUNCTION;
Routine created.
;
CREATE TRIGGER "informix".on_ins_kassa
INSERT ON "informix".kassa
REFERENCING NEW AS n_val
FOR EACH ROW(
INSERT INTO "informix".kassa_log(col1,col2,col3)
SELECT * FROM TABLE(kassa_ins())
);
Trigger created.
INSERT INTO "informix".kassa(col1,col2,col3)
SELECT * FROM TABLE(kassa_ins());
1 row(s) inserted.
SELECT * FROM "informix".kassa;
col1 col2 col3
1 2 3
1 row(s) retrieved.
SELECT * FROM "informix".kassa_log;
col1 col2 col3
1 2 3
1 row(s) retrieved.
Database closed.
[infx1210@tardis ~]$