标签: ddl

将列的注释设置为Postgresql中另一列的注释

假设我在Postgresql中创建了一个表,并对列进行了注释:

create table t1 (
   c1 varchar(10)
);
comment on column t1.c1 is 'foo';
Run Code Online (Sandbox Code Playgroud)

一段时间后,我决定添加另一列:

alter table t1 add column c2 varchar(20);
Run Code Online (Sandbox Code Playgroud)

我想查找第一列的注释内容,并与新列关联:

select comment_text from (what?) where table_name = 't1' and column_name = 'c1'
Run Code Online (Sandbox Code Playgroud)

(什么?)将成为一个系统表,但在浏览了pgAdmin并在网上搜索后我还没有学到它的名字.

理想情况下,我希望能够:

comment on column t1.c1 is (select ...);
Run Code Online (Sandbox Code Playgroud)

但我有一种感觉,那就是伸展的东西.谢谢你的任何想法.

更新:基于我在这里收到的建议,我最终编写了一个程序来自动完成传输注释的任务,这是更改Postgresql列数据类型的更大过程的一部分.您可以在我的博客上阅读相关内容.

postgresql ddl comments

6
推荐指数
1
解决办法
8160
查看次数

SQL Server 2005创建具有列的默认值范围的表

试图完成一些功课并遇到创建表格的问题.如何声明一系列数字的列默认值.它的内容是:"列构建(默认为1但可以是1-10)"我似乎找不到......或者知道在哪里查找这些信息.

CREATE TABLE tblDepartment
(
Department_ID int NOT NULL IDENTITY,
Department_Name varchar(255) NOT NULL,
Division_Name varchar(255) NOT NULL,
City varchar(255) default 'spokane' NOT NULL,
Building int default 1 NOT NULL,
Phone varchar(255)
)
Run Code Online (Sandbox Code Playgroud)

我试过建立int默认1在1到10之间NOT NULL,这没有用,我试过建立int默认1-10,表创建但我不认为它是正确的.

ddl sql-server-2005 default-value

6
推荐指数
1
解决办法
3万
查看次数

在MySQL中,FKs的"CONSTRAINT"是做什么的?

我看过MySQL 5.1文档,但仍然无法弄清楚这一点 - 我注意到我输入MySQL的代码与系统输出代码之间存在差异.

代码示例01和02之间有什么区别,这意味着02 CONSTRAINT之前添加了FOREIGN KEY- 为什么,它有什么作用?

CODE_SAMPLE_01:

FOREIGN KEY (TABLE_02_nID_FK__TABLE_01_sID_PK) REFERENCES TABLE_01(TABLE_01_sID_PK),
Run Code Online (Sandbox Code Playgroud)

背景:

CREATE TABLE `TABLE_02` (
  `TABLE_02_sID_PK` int(8) NOT NULL,
  `TABLE_02_nID_FK__TABLE_01_sID_PK` int(8) NOT NULL,
  `TABLE_02_cID` int(8) NOT NULL,
  `TABLE_02_data01` varchar(128) default NULL,
  `TABLE_02_data02` varchar(128) NOT NULL,
  `create_timestamp` DATETIME DEFAULT NULL,
  `update_timestamp` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`TABLE_02_sID_PK`),
  FOREIGN KEY (TABLE_02_nID_FK__TABLE_01_sID_PK) REFERENCES TABLE_01(TABLE_01_sID_PK),
  INDEX `TABLE_02_nID_FK__TABLE_01_sID_PK` (`TABLE_02_nID_FK__TABLE_01_sID_PK`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)

CODE_SAMPLE_02:

CONSTRAINT `table_02_ibfk_1` FOREIGN KEY (`TABLE_02_nID_FK__TABLE_01_sID_PK`) REFERENCES `table_01` (`TABLE_01_sID_PK`)
Run Code Online (Sandbox Code Playgroud)

背景:

CREATE TABLE …
Run Code Online (Sandbox Code Playgroud)

mysql ddl referential-integrity

6
推荐指数
1
解决办法
1064
查看次数

如何在MySql中将默认值设置为sysdate?

我将创建一个包含存储Created_date的列的表,该列具有datetime数据类型.我的目标是将其默认值设置为sysdate().

我试过了

CREATE TABLE tbl_table( created_datedatetime DEFAULT sysdate())

这给了我错误说不是有效的默认语句.我在Oracle中使用了类似的逻辑.请帮我解决这个问题.

提前致谢.

mysql ddl default-value

6
推荐指数
1
解决办法
4万
查看次数

在oracle中更改表中的多个列

下面的两个脚本(用于改变表)是否会产生差异.. ??

脚本1:

alter table ACNT_MGR_HSTRY add DM_BTNUMBER DATA_TYPE ;
alter table ACNT_MGR_HSTRY add DM_BTID DATA_TYPE ;
alter table ACNT_MGR_HSTRY add DM_USERID DATA_TYPE ;
alter table ACNT_MGR_HSTRY add DM_WSID DATA_TYPE ;
Run Code Online (Sandbox Code Playgroud)

脚本2:

alter table  ACNT_MGR_HSTRY
add
(
DM_BTNUMBER DATA_TYPE,  
DM_BTID DATA_TYPE,
DM_USERID DATA_TYPE,
DM_WSID DATA_TYPE
);
Run Code Online (Sandbox Code Playgroud)

将更新使差异.. ???

update OPERATIONAL_UNIT
 set ( BANK_ID=
 ENTY_CODE_ID=
 TIME_ZONE=
 DM_BTNUMBER=
 DM_BTID=
 DM_USERID=
 DM_WSID=
 );
 -----------
 update OPERATIONAL_UNIT set BANK_ID=;
 update OPERATIONAL_UNIT set ENTY_CODE_ID=;
 update OPERATIONAL_UNIT set TIME_ZONE=;
 update OPERATIONAL_UNIT set DM_BTNUMBER=;
 update OPERATIONAL_UNIT set …
Run Code Online (Sandbox Code Playgroud)

sql oracle ddl alter-table

6
推荐指数
1
解决办法
2万
查看次数

我可以配置Hibernate默认为每个表创建单独的序列吗?

Hibernate默认创建一个globel序列,用于为所有表生成id(在PostgreSQL的情况下),它可以扩展非常糟糕的恕我直言.虽然我可以为每个实体类型指定使用哪个序列,但我不喜欢这样做.我不喜欢明确命名序列和强制使用序列作为生成器策略,因为我希望hibernate为可能根本不支持序列的数据库生成DDL.单个全局序列也使得无法使用32位int作为主键,这意味着我必须将所有int id转换为long类型.

orm ddl code-generation hibernate

6
推荐指数
1
解决办法
8110
查看次数

如何删除未使用的序列?

我们正在使用PostgreSQL.我的要求是从我的数据库中删除未使用的序列.例如,如果我通过我的应用程序创建任何表,将创建一个序列,但是为了删除表,我们也不会删除序列.如果要创建同一个表,则会创建另一个序列.

示例:table : file; 自动创建idcoumn 序列:file_id_seq

当我删除表file并再次使用相同的名称创建它时,正在创建一个新序列(即file_id_seq1).我通过这种方式在应用程序数据库中积累了大量未使用的序列.

如何删除这些未使用的序列?

postgresql ddl sequences

6
推荐指数
1
解决办法
9389
查看次数

从数据库错误开始的Grails有人见过这个

我今天开始申请,当它开始时,我得到了这个错误

| 错误2012-09-14 13:54:17,608 [pool-7-thread-1]错误hbm2ddl.SchemaExport - 不成功:创建表顺序(默认情况下生成的id bigint为identity,version bigint not null,date_created timestamp not null,order varchar(255)not null,picture_id bigint not null,posts_id bigint not null,主键(id))

| 错误2012-09-14 13:54:17,609 [pool-7-thread-1]错误hbm2ddl.SchemaExport - SQL语句中的语法错误"CREATE TABLE ORDER [*](ID BIGINT由DEFAULT生成IDENTITY,VERSION BIGINT NOT NULL ,DATE_CREATED TIMESTAMP NOT NULL,ORDER VARCHAR(255)NOT NULL,PICTURE_ID BIGINT NOT NULL,POSTS_ID BIGINT NOT NULL,PRIMARY KEY(ID))"; 预期的"标识符"; SQL语句:创建表顺序(默认情况下生成的id bigint为identity,version bigint not null,date_created timestamp not null,order varchar(255)not null,picture_id bigint not null,posts_id bigint not null,primary key(id))[ 42001-164]

| 错误2012-09-14 13:54:17,621 [pool-7-thread-1]错误hbm2ddl.SchemaExport - 不成功:alter table order add constraint FK651874E9A8021F6 foreign key(posts_id)references …

ddl grails

6
推荐指数
2
解决办法
5026
查看次数

LiquiBase是否为模式差异生成DDL?

是否有一种生成模式差异的DDL的方法,就像TOAD中的Synch功能一样?

不确定如何使用“ updateSQL”选项?我正在使用diff选项比较架构。

ddl liquibase

6
推荐指数
1
解决办法
1252
查看次数

从SQL Server数据库生成DDL脚本

如何使用SQL(select/stored procedure/etc)从SQL Server数据库生成所有表的DDL(带外键,索引等)脚本?除了数据,我需要一切.

不能使用Sql Server Management Studio,因为我想在一个将在linux上运行的node.js脚本中使用它!

sql sql-server ddl

6
推荐指数
2
解决办法
7585
查看次数