使用跨设备表单,需要用到几张系统表和存储过程,需要在业务库先初始化建好。
系统表
序号发生器表 - id_codeid
Mysql建表SQL语句
CREATE TABLE `id_codeid` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`ID_NAME` varchar(50) NOT NULL,
`ID_VALUE` int(11) NOT NULL,
`ID_PRE` varchar(50) DEFAULT NULL,
`ID_DATE_FLAG` smallint(6) DEFAULT NULL,
`ID_LENGTH` int(11) DEFAULT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `ID_CODEID_ID_NAME` (`ID_NAME`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1;
华为GaussDB建表SQL语句
CREATE TABLE id_codeid (
ID INTEGER AUTO_INCREMENT,
ID_NAME varchar(50) NOT NULL,
ID_VALUE INTEGER NOT NULL,
ID_PRE varchar(50) DEFAULT NULL,
ID_DATE_FLAG smallint DEFAULT NULL,
ID_LENGTH INTEGER DEFAULT NULL,
PRIMARY KEY (ID)
);
表单附件表 - sys_attachment
Mysql建表SQL语句
CREATE TABLE `sys_attachment` (
`SA_ID` int(11) NOT NULL,
`SA_ORIGINAL_NAME` varchar(255) DEFAULT NULL,
`SA_SERVER_PATH` varchar(255) DEFAULT NULL,
`SA_SIZE` int(11) DEFAULT NULL,
`SA_CONTENT_TYPE` varchar(255) DEFAULT NULL,
`SA_CONTENT` mediumblob,
`SA_STORAGE_TYPE` smallint(2) DEFAULT NULL,
PRIMARY KEY (`SA_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='乐创者-附件存储';
华为GaussDB建表SQL语句
CREATE TABLE sys_attachment (
SA_ID INTEGER NOT NULL,
SA_ORIGINAL_NAME varchar(255) DEFAULT NULL,
SA_SERVER_PATH varchar(255) DEFAULT NULL,
SA_SIZE INTEGER DEFAULT NULL,
SA_CONTENT_TYPE varchar(255) DEFAULT NULL,
SA_CONTENT blob,
SA_STORAGE_TYPE smallint DEFAULT NULL,
PRIMARY KEY (SA_ID)
);
系统存储过程
序号生成存储过程 - sp_get_uni_id
该存储过程,用以修改系统表id_codeid的值。
目前作用于两个功能点:
1)lczCreater的文件上传;
2)lczCreater的主从表模型的主键自动生成。
Mysql的SQL语句
CREATE DEFINER=`taskmgr`@`%` PROCEDURE `sp_get_uni_id`(
IN in_name VARCHAR(50),
IN in_step INT,
OUT out_value VARCHAR(50)
)
BEGIN
START TRANSACTION;
UPDATE ID_CODEID SET ID_VALUE = ID_VALUE+in_step WHERE ID_NAME = in_name;
SELECT ID_VALUE - in_step + 1 INTO out_value FROM ID_CODEID WHERE ID_NAME = in_name;
IF out_value IS NULL
THEN
INSERT INTO ID_CODEID (ID_NAME, ID_VALUE) VALUES (in_name, in_step);
SET out_value = 1;
END IF;
COMMIT;
END
华为GaussDB的SQL语句
CREATE OR REPLACE PROCEDURE sp_get_uni_id(
in_name IN VARCHAR(50),
in_step IN INTEGER,
out_value OUT INTEGER
)
AS
BEGIN
UPDATE ID_CODEID SET ID_VALUE = ID_VALUE+in_step WHERE ID_NAME = in_name;
SELECT ID_VALUE - in_step + 1 INTO out_value FROM ID_CODEID WHERE ID_NAME = in_name;
IF out_value IS NULL
THEN
INSERT INTO ID_CODEID (ID_NAME, ID_VALUE) VALUES (in_name, in_step);
SET out_value = 1;
END IF;
END;
作者:Eric 创建时间:2023-06-20 11:55
最后编辑:林 更新时间:2025-04-24 13:55
最后编辑:林 更新时间:2025-04-24 13:55
