在MYSQL中,我想向auto_increment的主键那样,自动生成UUID。

xiaoming851 2008-01-08 02:33:36
比如主键是ID,
insert into (testfld) values ('asdf');
结果集应该是
ID testfld
1 asdf

现在我想让id的值变成UUID生成的内容,而且还不能修改insert语句,可以么?请举例,谢谢。
...全文
1883 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
懒得去死 2008-06-13
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 chenhy_81 的回复:]
谢谢,各位,问题已解决,直接用UUID()即可。
[/Quote]
Good.
chenhy_81 2008-06-11
  • 打赏
  • 举报
回复
谢谢,各位,问题已解决,直接用UUID()即可。
chenhy_81 2008-06-11
  • 打赏
  • 举报
回复
请问楼主如何解决的,我现在也正遇上这个问题,谢谢共享。我邮箱:chenhuayun1981@tom.com, QQ: 59963691
developCpp 2008-01-14
  • 打赏
  • 举报
回复
楼主是怎么解决的呀
可否共享下下
thank you
懒得去死 2008-01-09
  • 打赏
  • 举报
回复
解决了就好。
xiaoming851 2008-01-09
  • 打赏
  • 举报
回复
to 0608:
可以的,我已经测试成功了,而且已经部署工作了。谢谢大家。
懒得去死 2008-01-08
  • 打赏
  • 举报
回复
触发器是不能对自己操作的。LZ你的办法有了?
tim_spac 2008-01-08
  • 打赏
  • 举报
回复
bulecode客气了
xiaoming851 2008-01-08
  • 打赏
  • 举报
回复
to tim_spac:
我是不想修改SQL语句,你写的这个难道不用修改SQL语句么?


自己回答自己吧,在网上翻腾了半天,我的mysql是5的版本,可以用触发器来实现。谢谢大家。
tim_spac 2008-01-08
  • 打赏
  • 举报
回复

create table cfg_nextId (
tableName varchar(128),
nextId varchar(32)
);
create procedure proc_getNextId ( @tableName varchar(128), @nextId varchar(32) output )
as begin
select @nextId = nextId from cfg_nextId where tableName = @tableName;
update cfg_nextId set nextId = nextId+1 -- 或其他方法
where tableName = @tableName;
end;
xiaoming851 2008-01-08
  • 打赏
  • 举报
回复
to 0608:
可以把INT类型改成varchar的,但是不能改变insert语句,可以么?有办法么?
懒得去死 2008-01-08
  • 打赏
  • 举报
回复
必须改INSERT语句。
把ID列包含进去。

MYSQL的自增是INT型的。

UUID的内容是字符串的。

56,912

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧