写在前面
目的是测试将csv文件内容导入到表中, 同时记录一下自增主键的设置.
测试采用MySQL8.0.
新建表customer_info如下, 未设置主键.
修改上表, 添加主键id, 并设置为自增.
ALTER TABLE customer_info ADD COLUMN id INT AUTO_INCREMENT NOT NULL PRIMARY KEY;
导入步骤
1.为了模拟数据, 直接把这三条记录导出到csv文件中.
2.将该文件导入到表customer_info中.
csv文件中没有表头, 第一行就是数据, 所以改为1;
字段名行: 1这个没改, 点下一步如下:
3.验证导入结果
刷新表, 查看导入结果, 确实是从文件中的第一条数据张三开始导入的.文件内容已完全导入到表中.
小结
MySQL新增自增主键
ALTER TABLE customer_info ADD COLUMN id INT AUTO_INCREMENT NOT NULL PRIMARY KEY;
MySQL修改字段为自增主键
ALTER TABLE customer_info CHANGE COLUMN id id INT AUTO_INCREMENT PRIMARY KEY;
如果id本身就是主键, 仅仅是想设置为自增上面sql就不需要加PRIMARY KEY了.
SQLServer新增自增主键
ALTER TABLE sms_rec ADD id INT IDENTITY (1, 1) PRIMARY KEY;
修改字段为自增主键就不表演了..因为我是先把id那列干掉然后执行的上面一行...low了点, 能用...
Oracle新增自增主键(参考https://www.cnblogs.com/karrya/p/10888358.html)
Oracle通过设置序列和触发器实现主键自增
1)建表
/*第一步:创建表格*/ create table t_user( id int primary key, --主键,自增长 username varchar(20), password varchar(20), type varchar(20) );
2)创建自增序列
/*第二步:建立自定义的sequence*/ CREATE SEQUENCE user_sequence increment by 1 -- 每次加几个 start with 1 -- 从1开始计数 nomaxvalue -- 不设置最大值 nocycle -- 一直累加,不循环 nocache -- 不建缓冲区
3)创建触发器
/*第三步:建立触发器*/ create trigger mem_trig before insert on t_user for each row when (new.id is null) begin select user_sequence.nextval into:new.id from dual; end;