精华内容
下载资源
问答
  • 修改主键内容的sql语句
    千次阅读
    2021-11-26 11:11:05

    1 背景

        创建表的时候没有设置主键,希望可以通过SQL语句追加主键

    2 语句

        

    alter table 表名 add constraint 索引名称 primary key (成为主键的列)

    更多相关内容
  • alter table table1 add id int unsigned not null auto_increment primary key修改某个表的字段类型及指定为空或非空alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空];a...

    添加表字段

    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 `onduty_history`

    modify column `id` int(11) not null auto_increment first ,

    modify column `name` varchar(50) character set utf8 collate utf8_general_ci not null after `id`,

    modify column `onduty_date` datetime not null after `name`,

    add unique key (`id`),

    add primary key (`name`, `onduty_date`);

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持萬仟网。如有错误或未考虑完全的地方,望不吝赐教。

    如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

    展开全文
  • 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;

     

    展开全文
  • alter table table1 add id int unsigned not Null auto_increment primary key修改某个表的字段类型及指定为空或非空alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空];a...

    添加表字段

    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 `onduty_history`

    MODIFY COLUMN `id` int(11) NOT NULL AUTO_INCREMENT FIRST ,

    MODIFY COLUMN `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `id`,

    MODIFY COLUMN `onduty_date` datetime NOT NULL AFTER `name`,

    ADD UNIQUE KEY (`id`),

    ADD PRIMARY KEY (`name`, `onduty_date`);

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

    展开全文
  • –删除外键 语法:alter table 表名 drop constraint 外键约束名 如: alter table Stu_PkFk_Sc drop constraint FK_s alter table Stu_PkFk_SC drop constraint FK_c –添加外键 语法:alter table 表名 add ...
  • 主键自增长列在进行数据插入的时候,很有用的,如可以获取返回的自增ID值,接下来将介绍SQL Server如何设置主键自增长列,感兴趣的朋友可以了解下,希望本文对你有所帮助
  • 本文主要搜集总结了一些和mysql主键相关的sql语句,包括增加主键或者更改表的列为主键之类的sql语句,希望对大家能有所帮助
  • 最近在整理关于MySql的东西,把一些需要记录的东西写下来,以便以后查询和浏览,以下是一些操作技巧。...alter table table1 add id int unsigned not Null auto_increment primary key修改某个表的字段类型及指定为...
  • 主键自增在插入数据的时候是很实用的,可以获取并操作返回的插入记录的ID,接下来介绍Oracle如何创建主键自增表,感兴趣的你可以了解下,就当是巩固知识,希望此文对你有所帮助
  • 主要介绍了初探SQL语句复合主键与联合主键的相关内容,具有一定参考价值,这里给大家分享下,需要的朋友可以参考。
  • 两个文本文件,一个存储商户号(2000条),一个存储商户号的insert语句(10万条并且每条sql语句分成三行),根据商户号找到对应的sql语句
  • 给表增加主键sql语句

    万次阅读 多人点赞 2018-01-08 11:46:43
    sql操作中有很多方式给表增加主键,大体有三种方式。 1.创建表的时候直接在表字段后,跟primary key关键字。(一张表有且只能有一个主键主键具有唯一性。) 2.在创建表的时候在所有字段后面使用primary key...
  • sql语句后使用 SCOPE_IDENTITY() 当然您也可以使用 SELECT @@IDENTITY 但是使用 SELECT @@IDENTITY是去全局最新. 有可能取得值不正确. 示例: 代码如下:insert into dbo.SNS_BlogData(userName) values(‘jiangyun...
  • SQL 修改主键信息

    2021-07-03 11:18:46
    -- Parent_Obj 代表父级id为abcd 且 参数是主键约束 print @Pk -- 输出Pk变量的值 if @Pk is not null begin exec('Alter table abcd Drop '+ @Pk) --执行动态语句删除原主键 end alter table abcd alter column c ...
  • --删除主键 alter table 表名 drop constraint 主键名 --添加主键 alter table 表名 add constraint 主键名 primary key(字段名1,字段名2……) --添加非聚集索引的主键 alter table 表名 add constraint 主键名...
  • Mysql数据库Sql语句更改主键设置

    千次阅读 2019-07-17 16:12:39
    删除主键,若主键中有auto_increment配置,需要先将其去除。可以用modify重置主键类型设置。 alter table 表名 modify 字段名 字段类型(注意:字段类型中不要包含primary key、auto_increment); 2.删除主键 ...
  • 取消MySQL数据库表的...alter table tableName modify id int(11) unsigned not null comment '主键'; 增加表的主键字段自动递增 alter table tableName modify id bigint auto_increment comment '产品类型ID';
  • Java学习日志(二十八)SQL语句增加表中数据修改表中数据删除表中数据SQL约束主键约束非空约束唯一约束默认约束 SQL语句 增加表中数据 创建表catgory 字段:分类主键,分类名称 分类主键:添加主键约束和自动增长 ...
  • SQL语句主键和外键的简介和区别总结(关联查询类型怎么利用外键选择)
  • --删除主键alter table 表名 drop constraint 主键名--添加主键alter table 表名 add constraint 主键名 primary key(字段名1,字段名2……)--添加非聚集索引的主键alter table 表名 add constraint 主键名 primary ...
  • oracle对表添加主键约束的sql语句

    万次阅读 2017-02-27 08:57:46
    –创建主外键(可以在创建表的同时添加主外键约束,也可以  –创建完成后再添加约束 ) —–方法一:表创建的同时,添加主键约束 ...列名1 数据类型及长度 constraint 主键名称(一般主键名称为”
  • sql语句创建主键

    千次阅读 2016-09-26 11:39:07
    对于有数据的表,在企业管理器里面创建索引时,容易超时,使用sql语句只要在,工具-选项设置超时值为0,就不会超时。 在已有表里创建主键:alter table t_inputdata add constraint PK_t_inputdata primary key...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 321,502
精华内容 128,600
热门标签
关键字:

修改主键内容的sql语句