首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

创建表作为select是在postgresql中删除非空约束

在PostgreSQL中,删除非空约束需要先删除约束,然后再创建一个新的表。以下是详细步骤:

  1. 首先,找到要删除的非空约束的名称。可以使用以下查询:
代码语言:sql
复制
SELECT conname, relname, nspname
FROM pg_constraint c
JOIN pg_class t ON t.oid = c.conrelid
JOIN pg_namespace n ON n.oid = t.relnamespace
WHERE contype = 'c' AND nspname = 'public' AND relname = 'your_table_name';

your_table_name替换为您要删除非空约束的表名。

  1. 删除非空约束。将your_constraint_name替换为在第1步中找到的约束名称,将your_table_name替换为要删除非空约束的表名:
代码语言:sql
复制
ALTER TABLE your_table_name DROP CONSTRAINT your_constraint_name;
  1. 创建一个新的表,其中包含您要删除的非空约束。将your_table_name替换为要删除非空约束的表名,将your_column_name替换为要删除非空约束的列名:
代码语言:sql
复制
CREATE TABLE new_table_name AS
SELECT * FROM your_table_name WHERE your_column_name IS NOT NULL;
  1. 删除原始表:
代码语言:sql
复制
DROP TABLE your_table_name;
  1. 将新表重命名为原始表的名称:
代码语言:sql
复制
ALTER TABLE new_table_name RENAME TO your_table_name;

现在,您已经成功删除了非空约束。请注意,在执行这些操作之前,确保您已经备份了数据库,以防止数据丢失。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【SQL】作为前端,应该了解的SQL知识(第一弹)

记录:的行 关系数据库必须以行为单位进行数据读写 ---- DDL:(数据定义语言):用来创建或者删除数据库或者 CREATE:创建 DROP:删除 ALTER:..., ,……); 约束除了数据类型之外,对列存储的数据进行限制或者追加条件的功能 数据类型: 数据类型 描述 integer(size) int(size)...括号规定字符串的长度。 varchar(size) varchar2(size) 容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。 括号规定字符串的最大长度。... DROP TABLE ; 更新 添加列 -- 添加一列 ALTER TABLE ADD ; -- 添加多列 ALTER TABLE ADD (,<列名...() 可以提高优先级 真值 众所周知,真值有true和false两种,但是SQL还有一种UNKNOWN的情况。前者二值逻辑,后者三值逻辑。 值为NULL时,真值为UNKNOWN

87020

如何在Debian 8上安装和使用PostgreSQL 9.4

除非另有说明,否则本教程的所有命令都应作为具有sudo权限的非root用户运行。 没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。...我们还可以选择为每列添加约束。...这从设备ID开始,该ID串行类型。此数据类型自动递增整数。我们已经为此列提供了主键的约束,这意味着值必须唯一的而不为。 对于我们的两个列,我们没有给出字段长度。...然后我们给出设备类型和颜色的列,每个列都不能为。然后,我们创建一个位置列并创建一个约束,该约束要求该值为八个可能值之一。最后一列日期列,记录我们安装设备的日期。...要记住的另一件事我们不输入equip_id列的值。这是因为只要创建的新行,就会自动生成此项。

4.3K00

数据库 PostgreSQL 常用命令

数据: 数据的矩阵。一个数据库看起来像一个简单的电子表格。 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。...**外键:**外键用于关联两个。 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。 **索引:**使用索引可快速访问数据库的特定信息。...与实体完整性关系模型必须满足的完整性约束条件,目的保证数据的一致性。 PostgreSQL 特征 函数:通过函数,可以在数据库服务器端执行指令程序。...from [名];--整个 删除某行数据 create table ([字段名1] [类型1] ;,[字段名2] [类型2],.........;) 创建 SQL 语句 (SELECT * FROM "table1";) 可以执行 SQL 语句 参考资料 https://www.runoob.com

2.1K40

经验拾忆(纯手工)=> Python-

必须" 要指定的, 指定哪一数据库 mysql_db.create_tables([Owner]) # 注意,源码取出参数遍历,所以这里参数用列表 上述代码就可以建立一张""。...为什么"" 用引号括起来呢??...不然它不知道你这个在哪个数据库 既然这样,若我们要在一个数据库创建很多很多表,那岂不是每次都需要给每张指定一个数据库??...主人,你可以通过这个名字调用我" on_delete='Cascade', # 级联删除 # 默认为None, 这时,你想主人不掉的。会报错。...,True 代表唯一索引 (('字段1', '字段2'), False), # 字段1与字段2整体作为索引,False 代表普通索引 ) 需要注意的,上面语法,三层元组嵌套

1.5K10

数据库 PostgreSQL 常用命令

数据: 数据的矩阵。一个数据库看起来像一个简单的电子表格。 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。...**外键:**外键用于关联两个。 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。 **索引:**使用索引可快速访问数据库的特定信息。...与实体完整性关系模型必须满足的完整性约束条件,目的保证数据的一致性。 PostgreSQL 特征 函数:通过函数,可以在数据库服务器端执行指令程序。...from [名];--整个 删除某行数据 create table ([字段名1] [类型1] ;,[字段名2] [类型2],.........;) 创建 SQL 语句 (SELECT * FROM "table1";) 可以执行 SQL 语句 参考资料 https://www.runoob.com

2.3K30

Citus 分布式 PostgreSQL 集群 - SQL Reference(创建和修改分布式 DDL)

某些情况下,为了减少迁移工作,用户甚至可以选择从与租户关联但当前缺少租户 ID 的创建引用。) 需要跨多个列的唯一约束并且足够小的。...将其合并到共享有意义的。...前面描述的 create_distributed_table 函数适用于和非,对于后者,它会自动整个集群中分布行。...数据库约束 https://www.postgresql.org/docs/current/static/ddl-constraints.html 在这些情况下可能会创建外键: 两个本地(非分布式)之间...Citus 使用 PostgreSQL 的 “NOT VALID” 约束指定,为 CHECK 约束和外键支持此功能。 例如,考虑将用户配置文件存储引用的应用程序。

2.7K20

PostgreSQL常用语句

,数据库的每个的每个字段pg_attribute中都有一行记录。...pg_class系统字段relname记录名称,oid字段标识的唯一id;pg_attribute系统attrelid也标识的id。.../删除字段的非约束 增加字段的非约束: alter table student alter column updatetime set not null; 这个约束会立即进行数据检查,所以加入约束之前必须确保已有数据符合约束条件...删除非约束: alter table student alter column updatetime drop not null; 也只有非约束才能这样删除。...因为delete语句每次删除一行,并在事务日志为所删除的每行记录一项。truncate table通过释放存储数据所用的数据页来删除数据,并且只事务日志记录页的释放。

38420

PostgreSQL常用语句

,数据库的每个的每个字段pg_attribute中都有一行记录。...pg_class系统字段relname记录名称,oid字段标识的唯一id;pg_attribute系统attrelid也标识的id。.../删除字段的非约束 增加字段的非约束: alter table student alter column updatetime set not null; 这个约束会立即进行数据检查,所以加入约束之前必须确保已有数据符合约束条件...删除非约束: alter table student alter column updatetime drop not null; 也只有非约束才能这样删除。...因为delete语句每次删除一行,并在事务日志为所删除的每行记录一项。truncate table通过释放存储数据所用的数据页来删除数据,并且只事务日志记录页的释放。

78930

PostgreSQL常用语句

,数据库的每个的每个字段pg_attribute中都有一行记录。...pg_class系统字段relname记录名称,oid字段标识的唯一id;pg_attribute系统attrelid也标识的id。.../删除字段的非约束 增加字段的非约束: alter table student alter column updatetime set not null; 这个约束会立即进行数据检查,所以加入约束之前必须确保已有数据符合约束条件...删除非约束: alter table student alter column updatetime drop not null; 也只有非约束才能这样删除。...因为delete语句每次删除一行,并在事务日志为所删除的每行记录一项。truncate table通过释放存储数据所用的数据页来删除数据,并且只事务日志记录页的释放。

30110

Mysql总结

create table 名( 字段名 字段类型 约束 ) 创建时添加约束 直接在字段名和类型后面追加 约束类型即可 create table stuinfo( id INT...要求在从设置外键关系 从的外键列的类型和主表的关联列的类型要求一致或兼容,名称无要求 主表的关联列必须时一个key(一般主键或者唯一) 插入数据时,先插入主表,再插入从数据时,先,再主表...修改时添加约束 #添加非约束 ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR(20) NOT NULL; #添加默认约束 ALTER TABLE...KEY(majorid) REFERENCES major(id); 修改时删除约束 #删除非约束 ALTER TABLE stuinfo MODIFY COLUMN stuname VARCHAR...[else 语句n;] end if; # 应用场合:begin end 循环结构 分类 while loop repeat 循环控制 iterate类似于 continue 继续,结束本次循环

3.9K10

约束

,,让某字段整个唯一的 PRIMARY KEY #主键约束 FOREIGN KEY #外键约束 CHECK #检查约束 8.0才支持的,5.7还不支持 DEFAULT #默认值约束约束的时候给它约束...同一个可以有多个唯一约束 唯一约束可以是某个列,也可以多个列组合的唯一 唯一的字段可以为创建约束的时候,如果不给约束命名的话,那么默认和该列的名字相同。...)#约束 ); #查看表约束 SELECT * FROM information_schema....主键约束的列不允许重复,也不允许出现值 一个最多有一个主键约束,建立主键约束可以列级别创建,也可以级别创建 主键约束对应的一列或者多列(复合主键) MySQL的主键名总是PRIMARY,自己命名了也没有用...,默认名不是列名,而是自动产生一个外键名,当然也可以指定外键约束创建的顺序,先创建主表,再创建 ,先,再上主表 从的外键列和主表的列名字可以不相同,但是数据类型必须一样。

76720

图解 SQL,这也太形象了吧!

完整性约束用于维护数据的完整性或者满足业务约束的需求,包括实体完整性(主键约束)、参照完整性(外键约束)以及用户定义的完整性(非约束、唯一约束、检查约束和默认值)。...所以,我们可以将上面的查询作为使用: SELECT * FROM (SELECT employee_id, first_name, last_name, hire_date FROM...我们再看一个 PostgreSQL 的示例: -- PostgreSQL SELECT * FROM upper('sql'); | upper | |-------| | SQL | upper...JOIN SQL ,不仅实体对象存储关系,对象之间的联系也存储关系。因此,当我们想要获取这些相关的数据时,需要使用到另一个操作:连接查询(JOIN)。...VALUES 同样指定了一个关系 SQL Server 和 PostgreSQL 中支持以下语句: SELECT * FROM ( VALUES(1),(2),(3) ) test(id);

1.3K20

程序员硬核“年终大扫除”,清理了数据库 70GB 空间

索引和表格 当我们更新的行时,通常 PostgreSQL 将元组标记为无效,并在下一个可用空间中添加更新的元组,此过程将创建“bloat”,可能会导致消耗超出实际所需的空间,因此我们需要清除索引...有几种方法可以重建: 重新创建:如上所述,使用这种方法通常需要大量的开发工作,尤其重建正在使用的情况下。...为了不停机的情况下重建,该扩展程序将创建一个新,将原始的数据加载到该,同时使其与新数据保持最新,然后再重建索引。...采购用户对此具有 NOT NULL 约束,因此所有行均具有值。另一方面,取消用户可以为,只有一小部分行保存任何数据,取消用户字段的大多数值均为NULL。...我们希望取消用户的索引比购买用户的索引小得多,但原来它们完全相同的。之前我总是被教导说 NULL 不被索引,但是PostgreSQL却被索引!

2.2K10

Oracle数据库之四大语言

--  将的所有记录全部删除,但保留结构,并且不写日志; -- truncate DDL语言,   delete from DML语言; 5、删除:drop 6、数据完整性: 可靠性...+ 准确性 = 数据完整性 根据数据完整性机制所作用的数据库对象和范围的不同,数据完整性可分为以下四种类型: ①、实体完整性:唯一约束、主键约束; ②、域完整性:限制数据类型、检查约束、默认值、非约束...(增 insert、delete、改update、查select) insert into java values(1,'张三','男',to_date('1997-02-22','yyyy-mm-dd...; select * from student2; --插入来自其他的数据(select前可以加from) insert into student select * from java; select...* from student; 三、事务控制语言: 1、事务最小的工作单元,作为一个整体进行工作 2、保证事务的整体成功或失败,称为事务控制; 3、用于事务控制的语句有: commit:提交并结束事务处理

42210

Oracle学习笔记三

Oracle数据库约束的类型包括: 主键约束( Primary Key)   非约束( Not nu)   唯一约束( Unique)   外键约東( Foreign Key)   检查性约束...( Check) 6.1 主键约束 主键约束都是id上使用,而且本身已经默认了内容不能为,可以在建的时候指定。...* from scott.emp; 创建: create table 名( 列名 列的类型 [列的约束], 列名 列的类型 [列的约束] ); 列的类型: varchar ,Oracle,..., 必须唯一 非约束 唯一约束 检查约束 check(条件) mysql可以写的,但是mysql直接忽略了检查约束   外键约束:主要是用来约束A的记录,必须存在于主表B --男...  创建用户   授权 创建   子查询创建 修改 : 添加列,删除列,修改列,修改列名, 修改约束:   主键约束,唯一约束,非约束,检查约束,外键约束 外键约束:   强制删除   级联删除

3.1K51

sql语句增删改查的基本语法_数据库的增删改查四个语句

主键约束primarykey主键约束相当于唯一约束+非约束的组合,主键约束列不允许重复,也不允许出现值。...每个最多只允许一个主键,建立主键约束可以列级别创建,也可以级别创建。当创建主键的约束时,系统默认会在所在的列和列组合上建立对应的唯一索引。...delete语句执行删除的过程每次从删除一行,并且同时将该行的删除操作作为事务记录在日志中保存 语法:DELETE FROM 名称 WHERE 列名称 = 值, 如:删除student姓名为张三丰的学生信息...简单来说就是把整个去掉.以后要新增数据不可能的,除非新增一个。...truncate (清空的数据):删除内容、释放空间但不删除定义(保留的数据结构)。与drop不同的,只是清空数据而已。 注意:truncate 不能删除行数据,要就要把清空。

81030

【数据库04】中级开发需要掌握哪些SQL进阶玩法

我通俗的理解成,创建视图创建了一个规则,使用视图时再根据规则进行计算。 2.2 SQL查询中使用视图 创建视图后可以像使用数据一样使用视图。如。...创建时就可以声明属性非约束,语法。 name varchar(20) not null 主码禁止出现值,不需要显示的指定非约束。...也就是说,该约束要求spouse属性必须person中出现的姓名。...大多数数据库系统,模式还随着用户账户的创建而自动创建,此时模式名被置为用户账户名。模式要么建立缺省目录,要么建立创建用户所指定的目录,新创建的模式将成为该用户的缺省模式。...假如Mariano关系r上创建了一个外码,引用department的dept_name属性,然后r插入一条属于地质系的元组,那么除非同时修改关系r,否则再也不可能将地质系department删除了

1.6K20

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券