我希望数据库中的每个表在其主键中都有一个前缀。例如,表EMPLOYERS
中的第一行应具有EMP_00000001
的ID,依此类推。我如何才能使插入的每个新行的ID为EMP_00000002, ...03, ...
,最好有一个触发器?
答案 0 :(得分:1)
与其争夺Sqlite的工作方式,不如在需要时将前缀添加到普通rowid中(如果您将在许多不同的查询中使用长版本,则可以将其包装在视图中,以避免不必要的重复),并且为了提高效率,内部在连接,外键等中坚持使用简单数字:
CREATE TABLE employee_data(id INTEGER PRIMARY KEY AUTOINCREMENT, name);
CREATE VIEW employees(id, name) AS SELECT printf('EMP_%08d', id), name FROM employee_data;
INSERT INTO employee_data(name) VALUES ('Bill'), ('Paul');
SELECT * FROM employees;
id name
------------ ----------
EMP_00000001 Bill
EMP_00000002 Paul
答案 1 :(得分:0)
Update Emp set EMPLOYERS = EMPLOYERS + 1 where rowid=1