ddl相关内容
ALTER TABLE产品ALTER COLUMN power_price DROP DEFAULT; ALTER TABLE产品ALTER COLUMN power_price TYPE bool使用(power_price :: boolean); ALTER TABLE产品ALTER COLUMN power_price SET NOT NULL; ALTER TABLE产品A
..
表名更改后,如何更改对PostgreSQL中表的引用? 说我有: 创建表example1( id serial NOT NULL PRIMARY KEY, name varchar(100) ); 创建表example2( id serial NOT NULL主键, example1fk整数引用example1(id)可初始引用的 ); 我后来做:
..
所以我有一个带有大数据集的表,该表有三列要删除。 问题是:Postgres将如何处理它? 它将遍历每个条目,还是只是更新映射信息而没有太多开销? 我可以只制作一个 ALTER TABLE 还是在这种特殊情况下使用交换表吗? 并且,如果有什么区别,那么三列的长度都是固定的(两个整数和一个数字)。 很抱歉,是否已经有人问过,但是Google找不到任何相关问题/文章...
..
我想使用批处理文件创建一个Postgres数据库。现在,正常的操作方法如下: “ C:\Program Files\PostgreSQL\9.0\bin\createdb.exe” -U Myadmin MydatAbseName 上面的脚本创建具有默认数据库参数的数据库。但是,我想使用以下参数创建数据库: WITH OWNER = Myadmin TEMPLATE = t
..
如何使用PostgreSQL在单个表中为多列提供主键? 示例: 创建表“ Test” ( “ SlNo” int不为空主键, “ EmpID” int不为空,/ *希望成为主键* / “ Empname” varchar(50)空, “ EmpAddress” varchar(50)null ); 注意:我要输入“ EmpID” 解决方案 每个表只能
..
我想“创建或替换” postgres表的触发器。但是,没有这样的sql表达式。 我看到我可以执行“ 如果存在则触发触发器”首先( http://www.postgresql.org/docs/9.5/static /sql-droptrigger.html )。 我的问题是: 是否有比( DROP + CREATE 触发器) $ b $更推荐/更好的选择b 有没有没有这样的“创建
..
如何在PostgreSQL的列中添加注释? 创建表session_log( UserId int index not null , PhoneNumber int索引); 解决方案 使用 评论语句: 创建表session_log ( userid int不为null, phonenumber int );对session_log.userid列的 条评
..
我需要将列的数据类型从_float8更改为int4 ALTER TABLE“ table” ALTER COLUMN“ col “ SET DATA TYPE int4; 列“ col”的结果不能自动转换为整数 ALTER TABLE“ table” ALTER COLUMN“ col”设置数据类型int4使用(col :: integer) ;
..
在 postgres 数据库中,有表 base1 是视图的基础表view1 。 如果在 base1 中创建,删除或重命名了列,想要使用ddl触发器重新创建视图 view1 。 create当标记in('ALTER TABLE') 执行过程base1_views_fn();时,事件触发ddl_command_end 上的base1_views 创建函数base1_views
..
我的数据库背景是Oracle,所以我惊讶地发现Postgres在事务中包含架构更改-如果您开始进行事务创建,创建表然后进行回滚,则该表将消失。它也适用于添加和删除列。显然,这非常好。 我们将对部署依赖此功能的架构增量的方式进行一些更改。在此之前,我想了解交易担保的范围,但是我无法在文档中找到任何相关信息。我认为我使用的搜索字词不正确-我的搜索只是转到包含“交易”,“创建”和“表格”一词的大型
..
我想在PostgreSQL中做类似的事情 在不存在 有什么想法吗? 解决方案 您可以检查此语句是否存在具有给定名称的索引。 如果索引名称为 some_table_some_field_idx SELECT count(*)> 0 来自pg_class c c.relname =‘some_table_some_field_idx’ AN
..
我们正在使用PostgreSQL。我的要求是从数据库中删除未使用的序列。 例如,如果我通过应用程序创建任何表,将创建一个序列,但是对于删除表,我们也不会删除该序列。如果要创建相同的表,则会创建另一个序列。 示例:表: file ;自动为 id 列创建的序列: file_id_seq 何时我删除表 file 并再次使用相同的名称创建表,正在创建一个新序列(即 file_id_seq1
..
我需要为PostgreSQL数据库对象创建脚本。 我无权访问pg_dump。因此,我必须使用SQL查询来获取所有信息。我该怎么做? 解决方案 要获取函数的定义,请使用 pg_get_functiondef(): 从pg_proc 中选择pg_get_functiondef(oid) 其中proname ='foo '; 有类似的函数可检索索引,视图,规则等的
..
是否可以在单个语句中重命名多列,类似于以下内容: ALTER TABLE用户 RENAME COLUMN用户名至user_name, RENAME COLUMN用户名至real_name; 解决方案 否。 虽然可以组合其他操作,但使用 RENAME 是不可能的。 手册: 所有在单个表上起作用的 ALTER TABLE 形式,除了 R
..
在创建表之后,我有几个要运行的自定义DDL语句: update_function = DDL( “”“ 创建或替换功能update_timestamp() 以T $ 开始触发$ NEW.updated_at = now(); RETURN NEW; END; $$语言'pgplsql'; “”“) update_trigger = DDL(”“” CREATE
..
PostgreSQL不允许 ALTER TABLE t如果存在c1到c2 ...或类似的东西。但是,能够编写修改DB结构的脚本非常方便,该脚本可以再次运行而无需先检查它是否已经运行。 如何编写PostgreSQL的功能可以做到这一点? 解决方案 HI尝试此解决方案。 DO $$ 开始 如果存在(选择* 从information_sche
..
我想授予用户对数据库的所有权限,而无需使其成为管理员。 之所以要这样做,是因为目前DEV和PROD是同一集群上的不同DB,所以我不希望用户能够更改生产对象,但用户必须能够更改对象 我尝试过: 授予数据库MY_DB上的ALL分组MY_GROUP; 但似乎没有任何许可。 然后我尝试: 授予模式MY_SCHEMA的所有特权以将MY_GROUP分组;
..
如何在Postgresql上以编程方式生成表的DDL?是否有系统查询或命令来执行此操作?谷歌搜索问题不返回任何指针。 解决方案 答案是检查pg_dump的源代码并遵循其生成的开关。 DDL。在代码中的某个地方,有许多查询用于检索用于生成DDL的元数据。
..
在MySQL脚本中,您可以编写: CREATE TABLE IF NOT EXISTS foo ...; ...其他东西... 然后您可以运行脚本多次而无需重新创建表. 您如何在PostgreSQL中做到这一点? 解决方案 此功能已CREATE TABLE IF NOT EXISTS myschema.mytable (i integer); 对于较旧的版本,以
..
我知道使用SERIAL主键的PostgreSQL表最终会由PostgreSQL创建一个隐式索引,序列和约束.问题是在重命名表时如何重命名这些隐式对象.下面是我尝试用特定的问题来解决这个问题. 给出一个表格,例如: CREATE TABLE foo ( pkey SERIAL PRIMARY KEY, value INTEGER ); Postgres输出: 注
..