我需要自动增量。像abc_1,abc_2一样开始。喜欢这种格式?下面显示的代码用于自动增量。但是我需要像abc_这样的格式是constatanct然后自动增量,格式如abc_1,abc_2 ..
sql = "CREATE TABLE MY_TABLE
(
table_id int NOT NULL AUTO_INCREMENT,
PRIMARY KEY(table_id),
table_1 varchar(45),
table_2 varchar(45),
table_3 varchar(999),
table_4 varchar(45)
)"
答案 0 :(得分:0)
您可以添加另一列来派生此值,然后使用触发器自动更新此列,以便在插入行时添加派生值。
然而,目前尚不清楚为何需要这样做。最好只存储数字并导出需要使用该值的abc_123
形式。
答案 1 :(得分:0)
这是一件有趣的事情。所以我谷歌搜索自定义自动增量结构,并找到一些链接。大多数人都说在插入之前使用触发器会更好,我认为它可以解决您的问题。请看以下链接。
http://www.experts-exchange.com/Database/MySQL/Q_27602627.html
答案 2 :(得分:0)
您有两个选项 - 两者都包括完全保持自动增量字段。
第一个选项是添加一个简短的字符类型字段,它只存储您的Alpha部分。如果要检索整个密钥,则可以SELECT (alpha_part + table_id) as ID
。正如您所看到的,这会产生较小的存储空间,但每个select语句需要更多的工作。
第二个选项是添加一个由插入触发器正常填充的较长列。它只是在创建时存储连接,然后您不必在选择它时将其连接起来。此选项还允许您更轻松地创建索引或聚簇索引。
CREATE TABLE MY_TABLE (
table_id int NOT NULL AUTO_INCREMENT, PRIMARY KEY(table_id),
alpha_part varchar(10) NOT NULL, -- This
display_id varchar(40) NOT NULL, -- OR This (not both)
table_1 varchar(45),
table_2 varchar(45),
table_3 varchar(999),
table_4 varchar(45) )
“数据库ID”和“保险政策ID”是两个独立的实体 - 它们可能包含“相同”的数字,但不会混淆数据库需要有效执行的内容,以及业务应用程序生成ID所需的内容为客户。业务规则和数据库ID是单独的实体。您可以从生成的数据库中“生成”策略ID,但如果某些内容更改了策略ID(是的,则会发生这种情况),您的数据库突然需要重构,并且您不希望这种情况发生。