当前位置: 首页 > news >正文

【PostgreSQL】表操作-修改表

【PostgreSQL】表操作快速链接
创建表及基础表命令
修改表
表权限

添加列

ALTER TABLE products ADD COLUMN description text;

新列最初填充给定的任何默认值DEFAULT(如果未指定子句,则为 null)。

注意:
从 PostgreSQL 11 开始,添加ALTER TABLE具有常量默认值的列不再意味着在执行语句时需要更新表的每一行。相反,默认值将在下次访问该行时返回,并在重写表时应用,即使在大型表上也非常快。

但是,如果默认值是可变的(例如clock_timestamp()),ALTER TABLE则需要使用执行时计算的值更新每一行。为了避免可能冗长的更新操作,特别是如果您打算用大部分非默认值填充该列,最好添加没有默认值的列,使用UPDATE插入正确的值,然后添加任何所需的默认值,如下所述。

您还可以使用常用语法同时定义对列的约束:

ALTER TABLE products ADD COLUMN description text CHECK (description <> '');

事实上,所有可以应用于列描述的选项都可以在这里使用。但请记住,默认值必须满足给定的约束,否则将失败。CREATE TABLE或者ADD,您可以在正确填写新列后稍后添加约束(见下文)。

删除列

若要删除列,请使用如下命令:

ALTER TABLE products DROP COLUMN description;

列中的任何数据都会消失。涉及该列的表约束也会被删除。但是,如果该列被另一个表的外键约束引用,则 PostgreSQL 不会以静默方式删除该约束。您可以通过添加CASCADE来授权删除依赖于该列的所有内容:

ALTER TABLE products DROP COLUMN description CASCADE;

添加约束

若要添加约束,请使用表约束语法。例如:

ALTER TABLE products ADD CHECK (name <> '');
ALTER TABLE products ADD CONSTRAINT some_name UNIQUE (product_no);
ALTER TABLE products ADD FOREIGN KEY (product_group_id) REFERENCES product_groups;

若要添加不能写为表约束的非 null 约束,请使用以下语法:

ALTER TABLE products ALTER COLUMN product_no SET NOT NULL;

将立即检查约束条件,因此表数据必须满足约束条件才能添加。

删除约束

要删除约束,您需要知道其名称。如果你给它起个名字,那就很容易了。否则,系统会分配一个生成的名称,您需要找出该名称。psql 命令在这里可能会有所帮助;其他接口也可能提供检查表详细信息的方法。那么命令是:

\d tablename
ALTER TABLE products DROP CONSTRAINT some_name;

如果您正在处理生成的约束名称,例如$2 ,请不要忘记需要用双引号将其用作有效的标识符。

与删除列一样,如果要删除其他内容所依赖的约束,则需要添加。例如CASCADE,外键约束依赖于引用列的唯一键或主键约束。

这适用于除非 null 约束之外的所有约束类型。若要删除 not null 约束,请使用:

ALTER TABLE products ALTER COLUMN product_no DROP NOT NULL;

回想一下,非 null 约束没有名称。

更改列的默认值

若要为列设置新的默认值,请使用如下命令:

ALTER TABLE products ALTER COLUMN price SET DEFAULT 7.77;

请注意,这不会影响表中的任何现有行,它只是更改了未来命令INSERT的默认值。

若要删除任何默认值,请使用:

ALTER TABLE products ALTER COLUMN price DROP DEFAULT;

这实际上与将默认值设置为 null 相同。因此,在未定义默认值的地方删除默认值不会出错,因为默认值隐式为 null 值。

更改列的数据类型

若要将列转换为其他数据类型,请使用如下命令:

ALTER TABLE products ALTER COLUMN price TYPE numeric(10,2);

仅当列中的每个现有条目都可以通过隐式强制转换转换为新类型时,此操作才会成功。如果需要更复杂的转换,可以添加一个子句USING,指定如何从旧值计算新值。

PostgreSQL 将尝试将列的默认值(如果有)转换为新类型,以及涉及该列的任何约束。但这些转换可能会失败,或者可能会产生令人惊讶的结果。通常最好在更改列类型之前删除列上的任何约束,然后再添加回经过适当修改的约束。

重命名列

要重命名列:

ALTER TABLE products RENAME COLUMN product_no TO product_number;

重命名表

要重命名表:

ALTER TABLE products RENAME TO items;

相关文章:

【PostgreSQL】表操作-修改表

【PostgreSQL】表操作快速链接 创建表及基础表命令 修改表 表权限 添加列 ALTER TABLE products ADD COLUMN description text;新列最初填充给定的任何默认值DEFAULT&#xff08;如果未指定子句&#xff0c;则为 null&#xff09;。 注意&#xff1a; 从 PostgreSQL 11 开始…...

【Java系列】文件操作详解

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Java系列专栏】【JaveEE学习专栏】 本专栏旨在分享学习JavaEE的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 …...

docker-compose 安装 RocketMq

目录 1、rocketMq 官网 2、工作流程 RocketMQ集群工作流程​ 1. 启动NameServer​ 2. 启动 Broker​ 3. 创建 Topic​...

【心得】PHP反序列化高级利用(phar|session)个人笔记

目录 ①phar反序列化 ②session反序列化 ①phar反序列化 phar 认为是java的jar包 calc.exe phar能干什么 多个php合并为独立压缩包&#xff0c;不解压就能执行里面的php文件&#xff0c;支持web服务器和命令行 phar协议 phar://xxx.phar $phar->setmetadata($h); m…...

MyBatisPlus之增删改查

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 MyBatisPlus之增删改查 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、什么是Mybati…...

pytorch03:transforms常见数据增强操作

目录 一、数据增强二、transforms--Crop裁剪2.1 transforms.CenterCrop2.2 transforms.RandomCrop2.3 RandomResizedCrop2.4 FiveCrop和TenCrop 三、transforms—Flip翻转、旋转3.1RandomHorizontalFlip和RandomVerticalFlip3.2 RandomRotation 四、transforms —图像变换4.1 t…...

blob文件流前端显示pdf

首先请求需要修改 responseType: ‘blob’, 需要修改 请求头 {responseType: blob,url: url,method: get,}三种方法&#xff1a; 1.直接处理&#xff0c;在新页面打开 const blob new Blob([data],{ type:application/pdf }) let url window.URL.createObjectURL(blob) wi…...

Android 接入第三方数数科技平台

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、数数科技平台是什么&#xff1f;二、使用步骤1.集成SDK2. 初始化3. 发送事件和设置账号id4. 验证发送事件是否成功 小结 前言 一个成熟的App必然不可缺少对…...

LVM和磁盘配额

一&#xff1a;LVM概述&#xff1a; LVM 是 Logical Volume Manager 的简称&#xff0c;译为中文就是逻辑卷管理。 能够在保持现有数据不变的情况下&#xff0c;动态调整磁盘容量&#xff0c;从而提高磁盘管理的灵活性 /boot 分区用于存放引导文件&#xff0c;不能基于LVM创建…...

uni-app uni-app内置组件

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…...

C语言——格式说明符前面加修饰符

在C语言中&#xff0c;格式说明符前面可以添加一些修饰符来控制输出或输入的格式&#xff0c;主要包括宽度、精度、左对齐标志和前缀填充字符等。 1. 宽度&#xff08;Width&#xff09; %[width]type&#xff1a;这里的width是一个非负整数&#xff0c;表示输出字段的最小宽度…...

实验室(检验科)信息系统LIS源码,客户端:WPF+Windows Forms

lis系统源码&#xff0c;医学检验信息系统源码 LIS系统&#xff08;Laboratory Information System&#xff09;即实验室&#xff08;检验科&#xff09;信息系统&#xff0c;它将检验仪器付出的检验数据与相关信息接入计算机网络系统中&#xff0c;让患者、实验室、临床科室、…...

有道翻译web端 爬虫, js

以下内容写于2023-12-28, 原链接为:https://fanyi.youdao.com/index.html#/ 1 在输入框内输入hello world进行翻译,通过检查发出的网络请求可以看到翻译文字的http接口应该是: 2 复制下链接最后的路径,去js文件中搜索下: 可以看到这里是定义了一个函数B来做文字的翻译接口函数…...

uni-app API接口扩展组件(uni-ui)

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…...

信息化和数字化的本质区别是什么?

信息化和数字化是两个概念的区别 它们有什么区别和联系呢&#xff1f;信息化&#xff1a;“业务数据化”&#xff0c;先让业务流程能被数据记录下来。信息化“业务数据化”。数字化&#xff1a;“数据业务化”&#xff0c;用已累积的业务数据去反哺优化业务流程。数字化“数据…...

发表《Nature》!美国研究团队发布可编程逻辑量子处理器

​&#xff08;图片来源&#xff1a;网络&#xff09; 近期&#xff0c;美国研究团队开发了一款可编程的逻辑量子处理器&#xff0c;并展示了可靠且可扩展的量子计算所需的关键要素&#xff0c;该成果已发表于《Nature》期刊&#xff08;doi&#xff1a;10.1038/s41586-023-06…...

CISSP 第1章:实现安全治理的原则和策略

作者&#xff1a;nothinghappend 链接&#xff1a;https://zhuanlan.zhihu.com/p/669881930 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 CIA CIA 三性&#xff1a; 机密性&#xff1a;和数据泄露有关。完整性…...

【并发设计模式】聊聊线程本地存储模式如何实现的线程安全

前面两篇文章&#xff0c;通过两阶段终止的模式进行优雅关闭线程&#xff0c;利用数据不变性的方式保证数据安全&#xff0c;以及基于COW的模式&#xff0c;保证读数据的安全。本篇我们来简述下如果利用线程本地存储的方式保证线程安全。 首先一个大前提就是并发问题&#xff…...

边缘计算网关:重新定义物联网数据处理

随着物联网&#xff08;IoT&#xff09;设备的爆炸式增长&#xff0c;数据处理和分析的需求也在迅速增加。传统的数据处理方式&#xff0c;将所有数据传输到中心服务器进行处理&#xff0c;不仅增加了网络负担&#xff0c;还可能导致数据延迟和安全问题。因此&#xff0c;边缘计…...

Linux之下载安装

rpm包管理 rpm介绍 rpm用于互联网下载包的打包及安装工具&#xff0c;他包含在某些linux分发版本中。他生成具有.rpm扩展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具&#xff09;的缩写&#xff0c;类似windows的steup.exe。 rpm包的查询指令 查询已经安装…...

【HarmonyOS开发】案例-记账本开发

OpenHarmony最近一段时间&#xff0c;简直火的一塌糊度&#xff0c;学习OpenHarmony相关的技术栈也有一段时间了&#xff0c;做个记账本小应用&#xff0c;将所学知识点融合记录一下。 1、记账本涉及知识点 基础组件&#xff08;Button、Select、Text、Span、Divider、Image&am…...

webrtc中的接口代理框架

文章目录 接口代理框架Proxy体系类结构导出接口 webrtc的实际运用PeerConnectionFactoyPeerConnection使用 接口代理框架 webrtc体系庞大&#xff0c;模块化极好&#xff0c;大多数模块都可以独立使用。模块提供接口&#xff0c;外部代码通过接口来使用模块功能。 在webrtc中通…...

【AIGC-图片生成视频系列-4】DreamTuner:单张图像足以进行主题驱动生成

目录 一. 项目概述 问题&#xff1a; 解决&#xff1a; 二. 方法详解 a) 整体结构 b) 自主题注意力 三. 文本控制的动漫角色驱动图像生成的结果 四. 文本控制的自然图像驱动图像生成的结果 五. 姿势控制角色驱动图像生成的结果 2023年的最后一天&#xff0c;发个文记录…...

Jupyter Notebook的10个常用扩展介绍

Jupyter Notebook&#xff08;前身为IPython Notebook&#xff09;是一种开源的交互式计算和数据可视化的工具&#xff0c;广泛用于数据科学、机器学习、科学研究和教育等领域。它提供了一个基于Web的界面&#xff0c;允许用户创建和共享文档&#xff0c;这些文档包含实时代码、…...

uniapp项目如何引用安卓原生aar插件(避坑指南三)

官方文档说明&#xff1a;uni小程序SDK 【彩带- 避坑知识点】 如果引用原生aar插件&#xff0c;都配置好之后&#xff0c;云打包&#xff0c;报不包含此插件&#xff0c;除了检查以下步骤流程外&#xff0c;还要检查一下是否上打包的原生插件aar流程有问题。 1.第一步在uniapp项…...

YOLOv8改进 | 检测头篇 | ASFF改进YOLOv8检测头(全网首发)

一、本文介绍 本文给大家带来的改进机制是利用ASFF改进YOLOv8的检测头形成新的检测头Detect_ASFF&#xff0c;其主要创新是引入了一种自适应的空间特征融合方式&#xff0c;有效地过滤掉冲突信息&#xff0c;从而增强了尺度不变性。经过我的实验验证&#xff0c;修改后的检测头…...

思维训练-怎样设计一个MQ

架构师需要做各种设计&#xff0c;要不断地提高自己的设计能力。这有没有方法可以训练呢&#xff1f;有的&#xff0c;就是看到什么、想到什么&#xff0c;就假设对面坐着产品经理&#xff0c;一起讨论怎么把它设计出来。比如怎样设计一个MQ 我&#xff1a;首先我确认一下需求。…...

RK3399平台入门到精通系列讲解(导读篇)21天挑战Linux系统开发

🚀返回总目录 文章目录 一、关于作者1、博主的联系方式2、支持二、需要具备的知识和工具1、需掌握知识点2、需了解的知识点三、通过系列博客可以学到什么1、本系列博文特色2、21天学习目标3、21天学习内容4、学习时间5、学习产出...

企业微信会话存档sdk报错:A fatal error has been detected by the Java Runtime Environment

错误信息 # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc0x00007f218f93485d, pid10, tid58 # # JRE version: OpenJDK Runtime Environment 18.9 (11.0.14.11) (build 11.0.14.11) # Java VM: OpenJDK 64-Bit Server VM 18.9…...

nginx-docker 搭建websocket反向代理

下载镜像 docker pull nginx复制出配置文件 将/etc/nginx/nginx.conf和/etc/nginx/conf.d/default.conf复制到本机 nginx.conf文件内容 user nginx; worker_processes auto;error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid;events {worker_c…...

仿做静态网站多少钱/站长工具星空传媒

1.解释Session Session 是客户端与服务器通讯会话技术&#xff0c; 比如浏览器登陆、记录整个浏览会话信息。session存放在服务器&#xff0c;关闭浏览器不会失效。 1.1Session实现原理 客户对向服务器端发送请求后&#xff0c;Session 创建在服务器端&#xff0c;返回Sessi…...

宁波网站建设-中国互联/网络软文营销案例

在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分。如果你想获得任何股票投资银行的前台资讯职位&#xff0c;那么你应该准备很多关于多线程的问题。在投资银行业务中多线程和并发是一个非常受欢迎的话题&#xff0c;特别是电子交易发展方面相关的。他们会问面试…...

免费手机版网站建设/灰色词快速排名方法

最近使用jmeter测试接口并发&#xff0c;所测接口需要登录后才可执行&#xff0c;开始尝试把登录和接口执行写到一个线程组中&#xff0c;但是发现在并发执行时&#xff0c;单点登录容易报错&#xff0c;故改成登录单独线程组。分线程组后&#xff0c;由于cookie管理器所存的co…...

可以免费做推广的网站/百度app下载安装普通下载

XD中的图层面板Adobe XD里画出来的每一个元素都是一个独立的图层&#xff0c;和PS一样可以通过快捷键CtrlG键进行自由组合&#xff0c;也可以通过CtrlShiftG取消组合。单击工具栏中的“图层”工具&#xff0c;或者按CtrlY键打开和关闭图层面板。在未选择任何对象的情况下&#…...

北京专业建设/优化推广服务

一 搭建篇yum install -y subversionsvnserve --version二 创建项目仓库mkdir /var/svncd /var/svnsvnadmin create /var/svn/[项目名]三 配置项目仓库cd /var/svn/[项目名]/conf1.修改综合配置vi svnserve.conf//找到以下配置项&#xff0c;将前面的#号去掉&#xff0c;然后做…...

环影视界wordpress企业主题/app推广注册招代理

序 本文主要研究一下redis的监控工具 redis-stat redis-stat是一个比较有名的redis指标可视化的监控工具&#xff0c;采用ruby开发&#xff0c;基于redis的info命令来统计&#xff0c;不影响redis性能。 docker运行docker run --name redis-stat -p 8080:63790 -d insready/red…...