sql表怎么有两个主键呢

sql表怎么有两个主键呢,第1张

这里的PRIMARYKEY是主键,KEY不是主键,就是普通索引。再增加一个也是可以的。

mysql的key和index有点相近是索引约束,单独的key和其它关键词结合的key(primarykey)实际表示的意义是不同。

扩展资料

primarykey和key的区别:

primarykey是主键,一般为自动增长并且是非空、int类型的,主要用来保证数据的唯一性;

Key是索引约束,对表中字段进行约束索引的,都是通过primaryforeignunique等创建的。

举例说明:

CREATETABLEwh_logrecord(

logrecord_idint(11)NOTNULLauto_increment,

user_namevarchar(100)defaultNULL,

operation_timedatetimedefaultNULL,

logrecord_operationvarchar(100)defaultNULL,

PRIMARYKEY(logrecord_id),

KEYwh_logrecord_user_name(user_name)

)

解析:KEYwh_logrecord_user_name(user_name),本表的user_name字段与wh_logrecord_user_name表user_name字段建立外键,括号外是建立外键的对应表,括号内是对应字段。

courseidint,

scoreint,primarykey(studentno) )

②修改时:ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名)

前提是原先没有设置主键。

2.外键语法①创建时:createtablesc (studentnoint,

courseidint,

scoreint,foreignkey(courseid) )②修改时:ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列]

3.使用组合主键

如果一列不能唯一区分一个表里的记录时,可以考虑多个列组合起来达到区分表记录的唯一性,形式①创建时:createtablesc (studentnoint,

courseidint,

scoreint,primarykey(studentno,courseid) )

②修改时:alter table tb_name add primary key (字段1,字段2,字段3)

工具/原料

电脑  MySQL

方法/步骤

设置主键:

1、通过终端进入到mysql命令行工具。

2、通过use关键字进行到目标数据库里。

3、如原表已有主键,先把原来的主键删除掉,通过DROPPRIMARYKEY命令:ALTERTABLE`jingyan`DROPPRIMARYKEY。

4、主键已经没有了。

5、通过命令:ADDPRIMARYKEY来添加ALTERTABLE`jingyan`ADDPRIMARYKEY(`id`)。

6、输入后按下回车键即可看到queryok执行成功的字符。

7、回到数据库的可视化工具,即可显示现在的表在id列上添加了主键了。

设置外键:

1、创建好主从表。

2、选择主表,点击设计表,进入到表设计界面。

3、点击外键,进入到外键设置界面。

4、先设置外键名称和选择主表的外键字段。

5、然后在设置外键字段对应从表的数据库、表名和字。

6、点击保存就完成外键设置了。


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

原文地址: http://outofmemory.cn/zaji/7428806.html

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

发表评论

登录后才能评论

评论列表(0条)

保存