精华内容
下载资源
问答
  • MySQL修改表的主键字段

    千次阅读 2018-12-13 14:16:30
    MySQL修改表的主键字段 1. 命令 ALTER TABLE sleep_device_day_temp DROP PRIMARY KEY ,ADD PRIMARY KEY ( id );

    MySQL修改表的主键字段

    1. 命令

    ALTER TABLE sleep_device_day_temp DROP PRIMARY KEY ,ADD PRIMARY KEY ( id );
    
    展开全文
  • 主键问题: Innodb的索引文件本身就是数据文件,即B+Tree的数据域存储的就是实际的数据,这种索引就是聚集索引。这个索引的key就是数据表的主键,因此InnoDB表数据文件本身就是主索引。 InnoDB的辅助索引数据...
    主键问题:
    Innodb的索引文件本身就是数据文件,即B+Tree的数据域存储的就是实际的数据,这种索引就是聚集索引。这个索引的key就是数据表的主键,因此InnoDB表数据文件本身就是主索引。
    InnoDB的辅助索引数据域存储的也是相应记录主键的值而不是地址,所以当以辅助索引查找时,会先根据辅助索引找到主键,再根据主键索引找到实际的数据。所以Innodb不建议使用过长的主键,否则会使辅助索引变得过大。建议使用自增的字段作为主键,这样B+Tree的每一个结点都会被顺序的填满,而不会频繁的分裂调整,会有效的提升插入数据的效率。

    字段类型问题:
    mysql是基于行的数据库,而数据读取则是基于page的。每个page中存放有行。如果每一行的数据量都减小,那么每个page里面存放的行就增多了。每次io就能偶取出更多的行。
    数字类型:万不得已,不要用double类型。除了占用空间比较大之外,还有精度问题。同样,固定精度的小数也不要使用decimal,建议乘以固定倍数,转换成整数进行存储。可以节省存储空间,而且不用任何附加维护成本。对于整数的存储,建议分开tinyint/int/bigint,他们存储数据占用空间有一定差距。
    字符类型:首选char类型,其次varchar,万不得已,不要用text类型。它的处理效率低于char和varchar。varchar切不可以随意给一个很大的长度。
    时间类型:尽量使用timestamp。存储空间占用只是datetime类型的一半。对于需要精确到某一天的类型,建议使用date类型。因为它存储需要三个字节。比timestamp还少。不建议使用int来存储一个unix timestamp,不直观,不会带来任何好处。

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15498/viewspace-2139665/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/15498/viewspace-2139665/

    展开全文
  • 主要介绍了mysql修改自增长主键int类型为char类型示例,需要的朋友可以参考下
  • MySQL添加字段: alter table `user_movement_log` Add column GatewayId int not null default 0 AFTER `Regionid` (在哪个字段后面添加) 删除字段: alter table `user_movement_log` drop column Gatewayid ...
  • Mysql增加主键或者修改主键的sql语句

    万次阅读 多人点赞 2018-07-31 10:43:37
    Mysql增加主键或者更改表的列为主键的sql语句 添加表字段 alter table table1 add transactor varchar(10) not Null; alter table table1 add id int unsigned not Null auto_increment primary key 修改某个表...

    Mysql增加主键或者更改表的列为主键的sql语句

    添加表字段

    alter table table1 add transactor varchar(10) not Null;

    alter table   table1 add id int unsigned not Null auto_increment primary key

    修改某个表的字段类型及指定为空或非空

    alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空];

    alter table 表名称 modify 字段名称 字段类型 [是否允许非空];

    alter table 表名称 modify 字段名称 字段类型 [是否允许非空];

    修改某个表的字段名称及指定为空或非空

    alter table 表名称 change 字段原名称 字段新名称 字段类型 [是否允许非空

    删除某一字段

    ALTER TABLE mytable DROP 字段 名;

    添加唯一键

    ALTER TABLE `test2` ADD UNIQUE ( `userid`)

    修改主键

    ALTER TABLE `test2` DROP PRIMARY KEY ,ADD PRIMARY KEY ( `id` )

    增加索引

    ALTER TABLE `test2` ADD INDEX ( `id` )

    ALTER TABLE `category ` MODIFY COLUMN `id`  int(11) NOT NULL AUTO_INCREMENT FIRST ,ADD PRIMARY KEY (`id`);

     

    修改主键的sql语句块如下:

    mailbox 表新增字段

    DROP PROCEDURE IF EXISTS mailbox_column_update;
    CREATE PROCEDURE mailbox_column_update() BEGIN
        -- 新增删除标志列
        IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='cbs' AND table_name='mailbox' AND COLUMN_NAME='delete_flag') THEN
                ALTER TABLE mailbox ADD   delete_flag  int  DEFAULT 2   NOT NULL;
        END IF;
        -- 新增删除日期列
        IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='cbs' AND table_name='mailbox' AND COLUMN_NAME='delete_date') THEN
                ALTER TABLE mailbox ADD  delete_date  int  DEFAULT 0   NOT NULL;
        END IF;
        -- 如果存在字段account_mail,则修改字段长度
        IF EXISTS(SELECT 1 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='cbs' AND table_name='mailbox' AND COLUMN_NAME='email_account')
        THEN
            alter table mailbox modify column email_account varchar(320);
        END IF;
        -- 如果不存在主键列,则设置双主键
        IF ((SELECT count(*) FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA ='cbs' AND table_name='mailbox' AND CONSTRAINT_NAME ='PRIMARY' AND (COLUMN_NAME ='email_account' OR COLUMN_NAME = 'company_id'))=0)THEN
                    ALTER TABLE mailbox ADD primary key (company_id,email_account);
        -- 如果只存在一个主键列
        ELSEIF ((SELECT count(*) FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA ='cbs' AND table_name='mailbox' AND CONSTRAINT_NAME ='PRIMARY' AND (COLUMN_NAME ='email_account' OR COLUMN_NAME = 'company_id'))<2)THEN
                    ALTER TABLE mailbox  DROP PRIMARY KEY,ADD primary key (company_id,email_account);
        END IF;
            
    END;
    CALL mailbox_column_update();
    DROP PROCEDURE IF EXISTS mailbox_column_update;

     

    展开全文
  • mysql中的一个字段(新增 / 修改 / 取消 / 重置 ) 为主键 自增类型 -- 添加字段为主键自增类型 alter table user_t add column pids int auto_increment not null primary key -- 修改字段为主键自增类型 alter table...

    mysql中的一个字段(新增 / 修改 / 取消 / 重置 ) 为主键 自增类型

    -- 添加字段为主键自增类型
    alter table user_t add column pids int auto_increment not null primary key
    -- 修改字段为主键自增类型
    alter table user_t modify pid int auto_increment not null primary key 
    
    -- 取消主键约束
    alter table user_t drop primary key
    -- 取消字段自动增长
    alter table user_t modify pids int
    
    -- mysql中重置主键自增,字段从1开始自动递增方法
    truncate table user_t
    
    
    展开全文
  • MySQL增加或修改字段修改主键

    千次阅读 2017-05-08 11:12:10
    Alter TABLE 表名 ADD 字段名称 字段类型 例子: ALTER TABLE if_customer_order_tab ADD message_id DECIMAL(12,0) NOT NULL 将新增的字段排在第一位 ALTER TABLE if_customer_order_line_tab ADD message_id...
  • 添加字段: ALTER TABLE 表名 ...ADD COLUMN 字段字段类型(及长度) 是否可以为空 DEFAULT 默认值 COMMENT '字段注释' AFTER `在哪个字段后面添加`; COMMENT 和AFTER 可以不写; ALTER TABLE `test`...
  • mysql设置非主键字段自增

    千次阅读 2018-04-04 15:19:53
    思路:首先把字段设置为key,然后更改为自增;例如:alter table asynch_task ADD KEY comp_index (code);alter table asynch_task modify code BIGINT(20) auto_increment; 
  • 可直接在ctrl +f 搜索想知道的语句 //创建一个表 creat table demo( id int primary key auto_increment comment '学号', name varchar(20) comment '姓名', ...//查询表的字段 注解 字段类型...
  • Mysql主键自增字段

    千次阅读 2020-07-06 10:21:34
    此字段仅用于排序,非主键字段。 错误的方式 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for t_menu -- ---------------------------- DROP TABLE IF ...
  • DROP TABLE IF EXISTS `fi_kj_log_test`; CREATE TABLE `fi_kj_log_test` ( `id` bigint(4) unsigned zerofill NOT NULL AUTO_INCREMENT, `ts` bigint(20) DEFAULT NULL, `success` tinyint(1) DEFAULT NULL, ...
  • 参考代码: 1 /** 2 * 获取主键字段 3 * @param $table 4 * @param $database 5 * @return mixed 6 */ 7 public function get_primary_key($table,$database){ 8 $sql ...
  • mysql查询表名,表主键 SELECT table_name, column_name FROMINFORMATION_SCHEMA.KEY_COLUMN_USAGEt WHERE t.table_schema = '数据库...mysql查询表字段名称,字段类型 SELECT column_name, column_comment, ...
  • 补充:表中已经有主键字段“id”,所以不能将“serial_num”设置为auto_increment。 所以请问各位有什么简便的思路吗? ============================================== 补充:(使用触发器后,我尝试一下...
  • insert into A (ID,name,age,score,classes) select (select max(cast(ID as signed integer))+1 from A) ,'tom',21,score,classes from A WHERE ID=1017; —varchar 转 int ...cast(id as ...
  • 查询表结构: SELECT column_name FROM information_schema.columns WHERE ...查询主键字段名 SELECT column_name FROM INFORMATION_SCHEMA.`KEY_COLUMN_USAGE` WHERE table_name='表名' AND constraint_name='...
  • MySQL修改主键

    千次阅读 2018-07-05 21:34:39
    数据库操作中有时需要将一个主键修改为联合主键或者把主键改为其他列,这时候单纯的add primary key是没有用的,必须先删除主键约束,再重新添加。   1、alter table TABNAME drop primary key; 2、alter table ...
  • mysql 修改主键

    万次阅读 2018-09-19 09:34:18
    重设主键字段 有时数据库操作时需要将一个主键修改为联合主键或者把主键改为其他列,这时候单纯的add primary key是没有用的,必须先删除主键约束再重新添加。 MYSQL: 1、alter table TABNAME drop primary key; ...
  • 需要导出数据库中表的字段及属性,... DATA_TYPE 字段类型, CHARACTER_MAXIMUM_LENGTH 长度, column_key 主键, IS_NULLABLE 是否为空, COLUMN_DEFAULT 默认值, COLUMN_COMMENT 备注 FROM INFORMATION_SCHEMA.COLUM
  • 复制代码 代码如下: mysql_select_db(“hills_database_test”,$dbcon); $alterpkadd=”alter table hills_testcreatetable ... 您可能感兴趣的文章:深入探寻mysql自增列导致主键重复问题的原因mysql主键定义为自动
  • mysql中的普通字段,是否也可以设置auto_increment属性? 貌似只有主键才可以设置这个自增属性?
  • mysql给已存在表添加主键ID字段

    千次阅读 2019-07-04 15:49:35
    1. alter table anve_order add id int 2. alter table `anve_order` change id id int not null auto_increment primary key;
  • MySQL中如何使非主键字段自增长

    千次阅读 2017-12-10 17:11:50
    我在为学校做一个实现用户能对图片的上传下载网站时,由于要求用户注册时使用自己的学号作为自己的账号,所以在MySQL数据库中只能将学号(user_id)这个字段设为主键,但是在管理的用户的时候用学号的话显然不太方便,...
  • mysql主键设置自增字段

    千次阅读 2017-11-14 11:27:56
    在数据库建表的时候,设置列自增字段,一般提示该列必须为主键,才能设置自增字段,但是,并非主键才可以设置的。 create table a( id int (11) auto_increment not null, name varchar(20), key(id) ) ...
  • mysql数据库添加非主键自增字段

    千次阅读 2018-06-14 11:02:54
    我们直接向表中添加自增的非主键字段时会报错,错误信息如下: 该信息提示我们设为自增的字段必须作为键(并非一定是主键)。 所以我们可以这样做: (1)先添加字段,设置字段类型等基本属性:  alter ...
  • 第一步:给 id 增加auto_increment 属性 alter table tablename modify id int(11) auto_increment; 第二步:给自增值设置初始值 alter table tablename auto_increment=10000;
  • 问题:Mysql使用联合主键时,每个主键字段都能使用索引吗? 对于这个问题,很多mysql的初学者都是搞不清楚的,今天作者做了一个实验,来验证这个问题,防止在应用环境中不当的使用索引,导致mysql性能下降。 实验...
  • 1、添加PRIMARY KEY(主键索引) mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2、添加UNIQUE(唯一索引) mysql>ALTER TABLE `table_name` ADD UNIQUE ( `column` )  3、添加INDEX(普通索引) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 196,808
精华内容 78,723
关键字:

mysql修改主键字段类型

mysql 订阅