精华内容
下载资源
问答
  • mysql创建主键
    2021-04-20 00:37:58

    MySQL 创建主键,外键和复合主键的方法,需要的朋友可以参考下。

    1.创建主键语法

    ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名);

    2.创建外键语法

    ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列] ;

    3.使用组合主键

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

    ①创建时:create table sc (

    studentno int,

    courseid int,

    score int,

    primary key (studentno,courseid) );

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

    更多相关内容
  • MySQL创建主键

    2021-02-02 10:34:41
    MySQL InnoDB 存储引擎是必须要有一...创建主键的三种方式:在建表语句字段后指定 PRIMARY KEY 关键字设置主键,这种方式只能定义主键为一个字段的情况,如下所示:CREATE TABLE `t_user` (`id` int(11) NOT NULL A...

    MySQL InnoDB 存储引擎是必须要有一个主键的,主键可以是一个字段或者多个字段,通常建议:主键就一个、主键字段和业务无关、主键字段最好是自增且字段较小(原因:索引原理)。

    创建主键的三种方式:

    在建表语句字段后指定 PRIMARY KEY 关键字设置主键,这种方式只能定义主键为一个字段的情况,如下所示:CREATE TABLE `t_user` (

    `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',

    `name` varchar(32) DEFAULT '' COMMENT '名字'

    ) ENGINE=InnoDB CHARSET=utf8 COMMENT ='用户信息表';

    在建表语句之后,指定 PRIMARY KEY(column1,column2),这种方式可以定义主键为多个字段的情况,如下所示:CREATE TABLE `t_user` (

    `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '自增主键',

    `name` varchar(32) DEFAULT '' COMMENT '名字',

    PRIMARY KEY (`id`)

    ) ENGINE=InnoDB CHARSET=utf8 COMMENT ='用户信息表';

    我个人开发中更常用这种方式

    上面的两个建表语句,如果不在建表的时候就指定主键,会报错 Incorrect table definition; there can be only one auto column and it must be defined as a key,这个报错并非是 InnoDB 强制约束建表语句一定要指定主键,而是因为建表语句中存在自增 AUTO_INCREMENT 的字段,导致建表语句就必须指定主键,去掉自增建表语句不指定主键也是可以的,然后使用 ALTER TABLE 添加主键(这种方式开发用得很少,DBA重建索引可能会用到),如下所示:CREATE TABLE MEIZU_OPENROM.`t_user` (

    `id` int(11) NOT NULL COMMENT '主键',

    `name` varchar(32) DEFAULT '' COMMENT '名字'

    ) ENGINE=InnoDB CHARSET=utf8 COMMENT ='用户信息表';

    ALTER TABLE `t_user` ADD PRIMARY KEY (`id`);

    主键一旦创建,就不能再次添加,一个表如果已经存在主键,再次执行 ALTER TABLE .. ADD PRIMARY KEY (..),会提示定义多个主键的错误: Error Code: 1068\. Multiple primary key defined

    针对第三种建表的情况,如果建表的时候不指定主键,根据索引原理,MySQL InnoDB 存储引擎是必须要有一个主键的,那么,默认会使用什么作为主键呢?默认是不会有主键的,结果就是 insert 可以插入数据,但是 select 和 update 会报错,只有当添加主键之后,才可以select 和 update。

    Tips:查看索引

    查看当前表建立了哪些索引:

    show index from table_name

    来源:oschina

    链接:https://my.oschina.net/calmsnow/blog/4290435

    展开全文
  • 1.创建主键语法 ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名); 2.创建外键语法 ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子表列]...
  • MySQL 自增主键

    千次阅读 2022-02-10 17:46:23
    ​ 在创建主键的时候可以使用AUTO_INCREMENT关键字进行自增主键设置,设置之后,每插入一条数据之后主键都会自动累加1 ​ 使用AUTO_INCREMENT=100可以在表级别设定偏移量,比如这里设定为100,即从100开始累加 2、...

    1、创建

    ​ 在创建主键的时候可以使用AUTO_INCREMENT关键字进行自增主键设置,设置之后,每插入一条数据之后主键都会自动累加1

    ​ 使用AUTO_INCREMENT=100可以在表级别设定偏移量,比如这里设定为100,即从100开始累加

    2、修改AUTO_INCREMENT值

    ALTER TABLE tableName AUTO_INCREMENT = n
    

    3、自增主键在innodb引擎与myisam引擎差别

    现象

    ​ 重启后,innodb采用当前最大索引值,myisam采用建表以来最大索引值。

    ​ 比如,table_innodb当前最大索引为8,删除最后一条,当前最大为7,重启,table_innodb索引会从8开始,而不是9。

    ​ 同样的操作,table_myisam重启之后会从9开始

    Mysql8.0之后得以修复,innodb与myisam引擎表现一致

    原因

    ​ innodb将AUTO_INCREMENT值存储在内存里面,并没有做持久化

    ​ myisam会将AUTO_INCREMENT持久化存放在磁盘里

    展开全文
  • mysql创建主键的三种方式 方式一 给uid设置主键 ** CREATE TABLE user( uid INT PRIMARY KEY, uname VARCHAR(10), address VARCHAR(20) ) ** 方式二 给uid设置主键 **CREATE TABLE user( uid INT, uname...

    mysql中创建主键的三种方式

    方式一

    给uid设置主键

    **
    CREATE TABLE user(
       uid INT PRIMARY KEY,
       uname VARCHAR(10),
       address VARCHAR(20)
    )
    **
    

    方式二

    给uid设置主键

    **CREATE TABLE user(
       uid INT,
       uname VARCHAR(10),
       address VARCHAR(20),
       PRIMARY KEY(uid)
    )
    **
    

    方式三

    给uid设置主键

    CREATE TABLE user(
     uid INT,
     uname VARCHAR(10),
     address VARCHAR(20)
    )
    ALTER TABLE user ADD PRIMARY KEY(uid);
    
    

    联合主键创建方式

    给uid和uname设置联合主键

    CREATE TABLE user(
    	uid INT,
    	uname VARCHAR(10),
    	address VARCHAR(20),
    	PRIMARY KEY(uid,uname)
    )
    
    

    删除主键约束

    ALTER TABLE USER DROP PRIMARY KEY;
    
    

    这一点知识是Mysql的基础,但是容易忘记,所以写下笔记,希望能帮助到你,

    展开全文
  • mysql添加主键约束

    千次阅读 2021-03-04 01:09:45
    创建表的同时创建主键约束格式一:create table 表名(列名1 数据类型 primary key,列名2 数据类型);主键约束名字的写法: PK_列名格式二:create table 表名(列名1 数据类型,列名2 数据类型,constraint 主键约束的名字...
  • MySQL添加主键、索引

    千次阅读 2021-01-18 19:42:03
    查看索引SHOW INDEX FROM ...添加索引alter table 数据库add index 索引名称(数据库字段名称)主键索引ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )比如:ALTER TABLE order_info ADD PRIMARY KEY (o...
  • mysql如何添加主键

    千次阅读 2021-02-02 19:11:01
    MySQL 主键约束是一个列或者列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可以强制表的实体完整性。那么在MySQL中如何添加主键约束?下面本篇文章就给大家介绍一下。主键约束即在...
  • mysql 创建 表 sql语句 带主键和外键

    千次阅读 2021-01-18 22:06:03
    本文示例使用Birt自带的Sample数据源,用到的数据基于图1所示的实体关系模型。从这个模型中可以看出,文中示例用到三张数据库表分别为customers,orders和orderdetails。其中customers表的customernumber字段作为...
  • ****************创建主键(三种方法)****************创建学生表:第一种:create table student(sno char(5) primary key,/*学号*/ /*可以直接指定主键*/sname char(20) not null,/*姓名*/ssex char(3) not null,/*...
  • MySQL主键命名挺任性,就这么定了

    千次阅读 2021-01-19 00:45:49
    最近在梳理数据生命周期管理的细节时,发现了一个小问题,那就是MySQL主键命名策略,似乎会忽略任何形式的...首先来复现下问题,我们连接到数据库test,然后创建表test_data2.mysql> use testmysql> cre...
  • mysql创建联合主键

    千次阅读 2022-01-17 11:21:53
    mysql中,每张表中有且只能一个主键,但是...mysql创建联合主键 create table mytable ( -> a int, -> b char(10), -> c date, -> primary key (a,b); 因此,在mytable中,a,b两个列名作为联合主键 ...
  • Mysql 创建联合主键

    千次阅读 2021-01-18 18:27:01
    Mysql 创建联合主键2008年01月11日 星期五 下午 5:21使用primary key (fieldlist)比如:create table mytable (aa int,bb char(8),cc date,primary key (aa,bb ));aa,bb为联合主键不知道是不是因为mysql(6.0)的版本...
  • 创建主键(三种方法) **************** 创建学生表: 第一种: create table student (sno char(5) primary key,/*学号*/ /*可以直接指定主键*/ sname char(20) not null,/*姓名*/ ssex char(3) not null,/*...
  • SQL创建索引、主键

    千次阅读 2021-01-19 15:07:32
    -- MySQL中四种方式给字段添加索引1)# 添加主键# ALTER TABLE tbl_name ADD PRIMARY KEY (col_list);# -- // 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。#添加唯一索引-- UNIQUE 后面不用跟...
  • MySQL添加主键和外键

    2021-03-15 21:53:47
    添加主键约束:alter table 表名 add constraint 主键 (形如:PK_表名) primary key 表名(主键字段);添加外键约束:alter table 从表 add constraint 外键(形如:FK_从表_主表) foreign key 从表(外键字段) referen....
  • MySQL中的主键

    千次阅读 2021-10-16 11:42:04
    2.1 直接创建主键 2.1.1 单键 创建表的时候直接在字段上指定主键。 2.1.2 复合主键 在创建表的时候,在所有字段之后,使用primary key(主键字段列表)来创建主键,如果有多个字段作为主键,可以使用复合主键。 2.2 ...
  • MySQL里Create Index 能否创建主键 Primary Key
  • MySQL约束(主键,唯一,非空,外键) 概念: 对表中的数据进行限定,保证数据的正确性、有效性和完整性。 分类: 1. 主键约束:primary key 2. 非空约束:not null 3. 唯一约束:unique 4. 外键约束:foreign key ...
  • Mysql 建表时设置主键自增

    千次阅读 2021-12-02 15:27:44
    create table student( id INT primary key NOT NULL AUTO_INCREMENT, name nvarchar(10) )engine=innodb default charset=utf8
  • MySQL设置自增的主键

    千次阅读 2022-01-10 07:53:01
    1.如何设置自增的主键 很简单,只需要在主键后面添加AUTO_INCREMENT关键字就行了 CREATE TABLE `user`( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(10), `password` VARCHAR(20) ); 2.插入数据时指定...
  • MySQL创建表和主键约束

    千次阅读 2021-01-18 20:48:57
    1.创建表在操作数据表之前,应该使用"USE 数据库名"指定操作是在哪个数据库中进行主键约束(唯一标识)****非空*******唯一*******被引用****(学习外键时)约束是添加在列上的,用来约束列的!主键约束,用于唯一标识...
  • 本文实例讲述了mysql主键自增长用法。分享给大家供大家参考,具体如下: mysql并非只有主键才能自增长,而是设为键的列就可以设置自增长。 如下: CREATE TABLE t1 ( id INT, col1 INT auto_increment NOT NULL...
  • 本文主要介绍了关于MySQL主键为0与主键自排约束的关系,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 开始不设置主键表的设计如下: 如果id的位置有好几个0的话:设置主键并且自动排序时,0...
  • mysql主键还需要建立索引吗?

    千次阅读 2021-01-18 20:26:26
    创建或设置主键的时候,mysql会自动添加一个与主键对应的唯一索引,不需要再做额外的添加。数据库管理系统对于主键会自动生成唯一索引,所以主键是一个特殊的索引。当你创建或设置主键的时候,mysql会自动添加一个...
  • MySQL如何创建主键,外键和复合主键

    千次阅读 2020-11-16 18:27:35
    1.主键语法 ①创建时:create table sc ( studentnoint, courseidint, scoreint, primary key (studentno) ); ②修改时:ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名); 前提是原先没有设置...
  • MySQL创建表时设置主键id为uuid

    千次阅读 2020-03-31 15:14:40
    oracel创建uuid为主键的表时可以直接指定default uuid();但是mysql不支持,可以通过触发器实现。下面是创建一个产品表的sql语句。 --建表语句 CREATE TABLE `product` ( `id` varchar(36) NOT NULL, `productNum` ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 243,969
精华内容 97,587
关键字:

mysql创建主键

mysql 订阅