mysql自动生成字符串的主键是自动增长的

以前用oracle里面的序列再用触发器可以实现,我的主键是char型的,好像不能用auto_increment,怎么自动生成主键呢?... 以前用oracle里面的序列再用触发器可以实现,
我的主键是char型的,好像不能用auto_increment,怎么自动生成主键呢?
展开
 我来答
霜_河
推荐于2018-04-04 · TA获得超过479个赞
知道小有建树答主
回答量:277
采纳率:0%
帮助的人:212万
展开全部
建议使用uuid作为主键,
select replace(uuid(),'-','');

insert的时候用这个replace(uuid(),'-','')
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangzhiqing999
2011-07-01 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3332万
展开全部
MySQL
通过
AUTO_INCREMENT设置

mysql> CREATE TABLE test_create_tab2 (
-> id INT AUTO_INCREMENT,
-> val VARCHAR(10),
-> PRIMARY KEY (id)
-> );
Query OK, 0 rows affected (0.09 sec)

mysql> INSERT INTO test_create_tab2(val) VALUES ('NO id');
Query OK, 1 row affected (0.03 sec)

mysql> select last_insert_id() as id;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)

mysql> INSERT INTO test_create_tab2(val) VALUES ('NO id 2');
Query OK, 1 row affected (0.03 sec)

mysql> select last_insert_id() as id;
+----+
| id |
+----+
| 2 |
+----+
1 row in set (0.00 sec)

mysql> select * from test_create_tab2;
+----+---------+
| id | val |
+----+---------+
| 1 | NO id |
| 2 | NO id 2 |
+----+---------+
2 rows in set (0.00 sec)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Reyzhang
2011-07-01 · TA获得超过1111个赞
知道小有建树答主
回答量:805
采纳率:85%
帮助的人:668万
展开全部
你在设计表的时候就有问题,一般主键都定义为int类型,可设置为自增列。int型便于索引的优化与数据检索。 而你使用的char类型,随之而来的问题就如lz所问。
追问
是这样的,比如说我有一个订单表,然后他的订单主码是char(9),我就想自动生成形如E000000045这种类型的主码。
追答
一般的,这种设计还是需要主键的,你说的可以做为一个OrderNo(订单号)列存在,那它的生成规则就可以设计为"E00000000"+主键这种样子
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
taoxuwen
2011-07-01 · TA获得超过269个赞
知道小有建树答主
回答量:468
采纳率:0%
帮助的人:189万
展开全部
字段属性为 auto_increment
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式