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

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

你们的想法是不是,想在建表时为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(),但是这种方式还是存在很多问题的,这里就不说了。

总而言之,因为id在业务层面一般是无意义的,如果只是为了实现主键自增长,那请用auto_increment吧,如果您有更好的解决方式,请务必回复我,不胜感谢。

可以使用access的导入方式直接建立新的数据库表

打开一个数据库以后,右单击“表1

”,有个“导入”菜单,选择之后按照向导 *** 作就行。

格式的话,建议事先调好,当然,导入之后也可以再修改(右单击表名称,有个“设计视图”)

主外键的存在是依托两个实体之间的关系而存在的;

比如班级与学生的关系:

一个班级可以有多个学生,并且一个学生只能属于一个班级,这就是一对多的关系;

那么设计数据库的时候就应该在学生表内存放班级的id作为外键,为什么不在班级表内放学生呢?

因为,你想一想班级表内如果放学生那么记录可能就是这样:

1班id

1班

xx同学id

1班id

1班

xx同学id

这是不允许的,班级表内班级为主键,是唯一的不允许相同记录的;

下面简单给你讲下大概建成的表结构

--建班级表

create

table

class(

classid

int

primary

key,--定义班级id为主键

classname

varchar(15)

)

--建学生表

create

table

students(

studentid

int

primary

key,--定义学生id为主键

classid

int

,--外键值,跟班级表classid

属性类型相同

stuname

varchar(20),--学生姓名

---定义外键

foreign

key(classid)

references

class(classid)

--本表classid是基于class表classid的外键

)

---------

如上定义了主外键后,两个表间的关系就是一对多的关系了,并且学生表内的classid必须依托班级表的classid存在,也就是说外键必须要主键存在的时候才能创建,例如:

--在班级表为空的情况往学生表插入一条记录是不允许的:

insert

into

students(studentid,classid,stuname)values(1,1,'小明')

系统会抛出异常提示主键表班级表内班级id不存在这样是不允许插入的;

必须要先往班级表内插入一条记录:

insert

into

class(classid,classname)values(1,'一班')

后才能执行插入前面一条往学生表插入信息的语句

--------------可了解一些了?真累啊

方法一:创建表之后,alter

table

table_name

add

primary

key(字段1,字段2)

方法二:CREATE

TABLE

表名

(字段名1

Int

Not

Null,

字段名2

nvarchar(13)

Not

Null

字段名3…………

字段名N…………)

GO

ALTER

TABLE

表名

WITH

NOCHECK

ADD

CONSTRAINT

[PK_表名]

PRIMARY

KEY

NONCLUSTERED

(

[字段名1],

[字段名2]

)

GO

方法三:建表后,右键-->设计,选中作为符合主键的列,选中之后右击-->设为主键

可以通过企业管理器来创建,按住ctrl同时选择两个字段,右键主键。

还可以通过代码来设置

alter

table

表名

add

constraint

约束名

primary

key(字段1,字段2)

建表要点:

1 Gengeral 中定义表名,表空间。

2 Columns 对字段进行定义。

3 在Key选择主键字段,定义主键名称,一般用表名。

不能“Apply” 一般是定义不完全。

oracle:

甲骨文公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989年正式进入中国市场。2013年,甲骨文已超越 IBM ,成为继 Microsoft 后全球第二大软件公司。

2017年6月7日发布的2017年美国《财富》500强,甲骨文公司排名第81位。2017年6月,《2017年BrandZ最具价值全球品牌100强》公布,甲骨文公司排名第46位。

20世纪约70年代 一间名为Ampex的软件公司,正为中央情报局设计一套名叫Oracle的数据库,埃里森是程序员之一。

1977年埃里森与同事Robert Miner创立“软件开发实验室”(Software Development Labs),当时IBM发表“关系数据库”的论文,埃里森以此造出新数据库,名为甲骨文。

1978年 公司迁往硅谷,更名为“关系式软件公司”(RSI)。RSI在1979年的夏季发布了可用于DEC公司的PDP-11计算机上的商用ORACLE产品,这个数据库产品整合了比较完整的SQL实现,其中包括子查询、连接及其他特性。美国中央情报局想买一套这样的软件来满足他们的需求,但在咨询了IBM公司之后发现IBM没有可用的商用产品,他们联系了RSI。于是RSI有了第一个客户。

最先提出“关系数据库”的IBM采用RSI的数据库。1982年再更名为甲骨文(Oracle)。

以上就是关于mysql创建数据库时怎么将主键设置为UUID,建表语句怎么写全部的内容,包括:mysql创建数据库时怎么将主键设置为UUID,建表语句怎么写、请教EXCEL创建ACCESS数据库表建立主键、数据库建表主键外键怎么创建合适等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9329729.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存