mysql创建数据库时怎么将主键设置为UUID,建表语句怎么写

1、打开CMD,输入mysql -uroot -p命令连接mysql,如下图所示 2、通过create创建表,指定ID为varchar(36),并设置为主键,如下图所示 3、在插入数据的时候,调用uuid()函数往主键字段里插入uuid值,如下图所示 4、最后查询插入的数据就可以看到id主键列存放的是uuid类型了,如下图所示 你们的想法是不...
mysql创建数据库时怎么将主键设置为UUID,建表语句怎么写
mysql设置UUID为主键需要先将数据类型设置为VARCHAR(36),然后插入数据的时候用UUID函数插入UUID。下面我用win10系统下的CMD命令行具体演示一下:
1、打开CMD,输入mysql -uroot -p命令连接mysql,如下图所示

2、通过create创建表,指定ID为varchar(36),并设置为主键,如下图所示

3、在插入数据的时候,调用uuid()函数往主键字段里插入uuid值,如下图所示

4、最后查询插入的数据就可以看到id主键列存放的是uuid类型了,如下图所示

2020-01-14
那直接用语句创建就好了,唯一约束可以理解为是主键
create table test
(id int primary key,
name varchar(10),
age int)

说明:其中primary key就是主键,也就代表此表中id字段是唯一的,不可重复。2017-11-11
你们的想法是不是,想在建表时为id指定uuid,然后每次插入数据都会自动为每一条数据生成uuid呢?就像auto_increment主键自增一样呢?
我只想说 you are too young!
我一开始是这样做的:
create table product(
id varchar(36) primary key default uuid()

sql语句报错。
后来查了查资料,发现mysql好像并不支持在建表时,为某一字段指定默认函数值。但是在Oracle数据库中,却支持这样干,也就可以实现插入数据时,自动生成uuid。
所以在mysql中只能在插入数据时,将uuid()函数值赋值给id字段。
后来,我又想了一个方案,我可以去写一个触发器,每次在执行插入操作时,都为id字段更新为uuid(),但是这种方式还是存在很多问题的,这里就不说了。
最后说明一点(uuid适不适合作为主键):
uuid号称“全球唯一”,实际上业务中一般不会只用一个uuid就保证某个字段的唯一性,因为它并不能保证唯一性,uuid的组成:
Mac地址+时间戳+自增序列,前两个都可以修改,自增序列在不同机器本身就无法保证唯一。既然无法保证唯一,那么没有任何处理的情况下直接将uuid作为主键,显然也是不合适的。
2020-04-14
mengvlog 阅读 8 次 更新于 2025-07-20 16:10:20 我来答关注问题0
  • 在MySQL数据库中,可以通过DROP PRIMARY KEY和ADD PRIMARY KEY语句修改主键。示例代码如下:ALTER TABLE `table_name` DROP PRIMARY KEY; //删除主键 ALTER TABLE `table_name` ADD PRIMARY KEY (`id`); //添加主键 注意,修改主键时,需要先删除原有主键,再添加新的主键。四、主键的注意事...

  •  云易网络科技 MySQL主从数据表的创建和使用方法mysql中主从数据表

    1.主表 2.从表 主表是MySQL主数据库的中心,它用来存储数据并接收所有的写入请求。从表是MySQL从数据库,它用来读取数据。下面我们将介绍如何创建和使用MySQL主从数据表:1.创建MySQL主从数据表 我们需要在主数据库中创建一个主表。这个主表用来存储所有的数据,并且它是MySQL主数据库的中心。CREATE TA...

  • 1. 在创建表时,为主键字段设置AUTO_INCREMENT属性。2. 确保该字段是主键。3. 如果表已存在,可以通过修改表结构来为主键添加AUTO_INCREMENT属性。详细解释:在MySQL数据库中,自增主键通常用于生成唯一的标识符。这种主键的值会自动递增,确保每行数据都有一个独特的标识。设置主键自增的步骤如下:在创...

  • 主键是用于唯一标识每个数据库表中的行的一个或多个列。每个表只能有一个主键。主键可以是单个列、多个列的组合或没有列,这种情况下MySQL将自动生成一个主键。2. 创建主键 可以使用ALTER TABLE语句添加主键,也可以在创建表时指定主键。以下是在创建表时指定主键的示例:CREATE TABLE users (id INT(1...

  • 可以创建表,例如创建一个名为studinfo的表,包含字段(学号,整数类型,主键)和(年龄,整数类型,最大位数2)。通过show table命令,可以查看当前数据库中的所有表,这有助于用户了解数据库结构。如果需要删除student数据库,可以使用drop database student命令。这将永久删除指定的数据库及其所有数据。

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部