如何把其他数据库中AUTO_INCREMENT约束的字段(如ID)导入Vertica数据库

如果在Vertica数据库在建一张同样带AUTO_INCREMENT约束字段(ID)的表,由于AUTO_INCREMENT约束的限制,COPY导入数据时会发生冲突,导致COPY执行失败。

经过分析研究及测试,先创建SEQUENCE,然后创建表并设置ID字段的缺省值为NEXTVAL(‘schemaname.sequencename‘),就可COPY导入AUTO_INCREMENT约束字段的数据。步骤如下:

1、创建SEQUENCE:

create SEQUENCE public.mytab_id_seq;

2、创建表:

CREATE TABLE IF NOT EXISTS public.mytab (

id bigint NOT NULL DEFAULT NEXTVAL(‘public.mytab_id_seq‘) UNIQUE PRIMARY KEY,

...

);

3、导入数据:

copy public.mytab ( we_id,...) from ‘/home/username/mytab.csv‘ DELIMITER ‘|‘;

4、查询ID的最大值:

select max(id) from mytab;

5、修改SEQUENCE的初始值为ID的最大值(如720):

ALTER SEQUENCE public.mytab_id_seq RESTART WITH 720;

时间: 2024-12-13 20:42:05

如何把其他数据库中AUTO_INCREMENT约束的字段(如ID)导入Vertica数据库的相关文章

数据库中存储日期的字段类型到底应该用varchar还是datetime

将数据库中存储时间的数据类型改为varchar(),这时最好让这些时间是数据库中自动生成的(一个没有格式的输入也可能会导致输出错误),因为存储类型为varchar(),所以获取到的值也就被认为是一个字符串,直接将数据库中的时间字符串进行转化(这时那些转化函数是能识别数据库中的时间函数的),客户端的时间格式不再影响转换过程. 不过数据库中存储时间的类型如果为字符型也会带来一些麻烦: 数据库中的时间仅仅是用来显示.查找的,那么影响还不算大,但如果对时间字段进行一些算法如计算星期.DateDiff.D

Java对比两个数据库中的表和字段,写个冷门的东西

Java对比两个数据库中的表和字段,写个冷门的东西 转载的 来源网络 目前所在的项目组距离下个版本上线已经很近了,就面临了一个问题:开发人员在开发库上根据需要增加数据表.数据字段.或者变更了字段类型或者字段长度等等. 由于时间比较紧迫,导致在开发过程中不可能一一把DDL数据库脚本记录下来,在比较大的项目中,比如我所在项目开发的系统大概包含了800张左右的表,字段上10000个的情况下,人工处理明显不可行,所以我们就得通过程序来判断比对,哪些是我们需要新增加的表,哪些是我们需要新增加的字段,哪些是

C#将数据库导出成Excel,再从Excel导入到数据库中。

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using System.IO; namespace CindyDatabaseProcess { class Program { static void Main(string[] args) { System.Data.DataTable dt1 = null; S

使用sql查询mysql/oracle/sql server/gp数据库中指定表的字段信息(字段名/字段类型/字段长度/是否是主键/是否为空)

1,根据数据库类型拼接不同URL /** * 根据类型不同拼接连接的URL * @param dbType 1:mysql.2:oracle.3:sql server.4:gp * @param ip * @param port * @param databaseName * @return*/ public static String getTestDbUrl(int dbType, String ip, String port, String databaseName){ String ur

数据库基础知识:数据库中的约束和三大范式

一.数据库中的范式: 范式, 英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法,以下就是对这三个范式的基本介绍: 第一范式(1NF): 数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性. 例如: userInfo: '山东省烟台市 1318162008' 依照第一范式必须拆分成            

[转]Oracle数据库中的约束

SQL 约束 约束用于限制加入表的数据的类型. 可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句). 我们将主要探讨以下几种约束: NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK DEFAULT 1.NOT NULL 约束 NOT NULL 约束强制列不接受 NULL 值. NOT NULL 约束强制字段始终包含值.这意味着,如果不向字段添加值,就无法插入新记录或者更新记录. 下

数据库中的约束

约束的种类 主键约束   primary key 这个字段的值必须满足非空且该字段的值不能重复 一张表中只能有一个主键 唯一性约束   unique 这个字段的值不能重复 一张表中的唯一性约束个数不受限制 不能检查NULL值 非空约束    not null 这个字段的值不能是NULL值 一张表中的非空约束个数不受限 检查约束    check(条件) 字段的值必须符合检查条件(条件由自己指定,where里写的这里都可以写) 外键约束    references(参考/ 关联/ 引用)    建

Mysql数据库中 User表权限字段说明全介绍

一:mysql权限表user字段详解: Select_priv.确定用户是否可以通过SELECT命令选择数据. Insert_priv.确定用户是否可以通过INSERT命令插入数据. Update_priv.确定用户是否可以通过UPDATE命令修改现有数据. Delete_priv.确定用户是否可以通过DELETE命令删除现有数据. Create_priv.确定用户是否可以创建新的数据库和表. Drop_priv.确定用户是否可以删除现有数据库和表. Reload_priv.确定用户是否可以执行

WordPress数据库中的表、字段、类型及说明

wp_categories: 用于保存分类相关信息的表.包括了5个字段,分别是: cat_ID – 每个分类唯一的ID号,为一个bigint(20)值,且带有附加属性auto_increment. cat_name – 某个分类的名称,为一个varchar(55)值. category_nicename – 指定给分类的一个便于记住的名字,也就是所谓的slug,这是一个varchar(200)值. category_description – 某个分类的详细说明,longtext型值. cate