使用JPA,DDL生成属性:
@Column
final String someString;
Run Code Online (Sandbox Code Playgroud)
将会 someString varchar(255) null
@Column(length = 1337)
final String someString;
Run Code Online (Sandbox Code Playgroud)
会屈服someString varchar(1337) null.
但我怎样才能让它产生someString varchar(max) null呢?
是否可以使用length-attribute,还是需要使用columnDefinition-attribute?
如何避免获取此MySQL错误列topic_id的列说明符不正确?
MySQL错误......
#1063 - Incorrect column specifier for column 'topic_id'
Run Code Online (Sandbox Code Playgroud)
SQL架构......
CREATE TABLE discussion_topics (
topic_id char(36) NOT NULL AUTO_INCREMENT,
project_id char(36) NOT NULL,
topic_subject VARCHAR(255) NOT NULL,
topic_content TEXT default NULL,
date_created DATETIME NOT NULL,
date_last_post DATETIME NOT NULL,
created_by_user_id char(36) NOT NULL,
last_post_user_id char(36) NOT NULL,
posts_count char(36) default NULL,
PRIMARY KEY (topic_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Run Code Online (Sandbox Code Playgroud) 我想知道是否可以在事务中运行多个DDL语句.我对SQL Server特别感兴趣,尽管其他数据库(至少Oracle,PostgreSQL)的答案也很有趣.
我一直在为事务中创建的表做一些"CREATE TABLE"和"CREATE VIEW",似乎有些不一致,我想知道DDL是否不应该在事务中完成...
我可能会在事务之外移动DDL,但我想得到一些参考.我到目前为止所发现的:
对于Oracle:
如果它重要,我通过JTDS JDBC驱动程序使用Java.
br Touko
有没有一种简单的方法可以使用Ms或My SQL服务器通过查询提取表DDL信息?(最好是两个?)
例如,使用MySQL Administrator/Navicat for MySql,有一个"DDL"函数,它生成"create table foo(....)"脚本.
有没有办法从查询本身获取此信息,例如:
Select DDL from foo where table_name='bar';
Run Code Online (Sandbox Code Playgroud)
有没有"创建表栏(.....)"还给我?
如果没有 - 任何建议?
如何在Postgresql上以编程方式生成表的DDL?是否有系统查询或命令来执行此操作?谷歌搜索问题没有返回指针.
是否可以在一个语句中重命名多个列,类似于:
ALTER TABLE Users
RENAME COLUMN userName TO user_name,
RENAME COLUMN realName TO real_name;
Run Code Online (Sandbox Code Playgroud) 假设我有一个mysql表,我有一个类型的列,enum该列已定义了一组值,如enum('a','b','c','d').
如何'e'使用alter table语句为此集添加值?
我希望使用将新值附加到它的末尾CONCAT.
对于以下MySQL创建数据库语句,postgresql中的等价物是什么?:
CREATE DATABASE IF NOT EXISTS `scratch`
DEFAULT CHARACTER SET = utf8
DEFAULT COLLATE = utf8_unicode_ci;
Run Code Online (Sandbox Code Playgroud)
我目前有:
CREATE DATABASE "scratch"
WITH OWNER "postgres"
ENCODING 'UTF8'
TABLESPACE "pg_default";
Run Code Online (Sandbox Code Playgroud)
这还不够,还是我应该更具体LOCALE一些?
所以我有一个包含大型数据集的表,这个表有三列我想删除.
问题是:Postgres将如何处理它?
它会遍历每个条目还是只是更新映射信息而没有太多开销?ALTER TABLE在这种特殊情况下,我可以只使用或应该使用交换表吗?
并且,如果它有任何区别,则所有三列都具有固定长度(两个整数和一个数字).
如果已经有人问过我很抱歉,但谷歌找不到任何相关的问题/文章......
postgresql ddl database-design database-performance postgresql-9.2
以下代码创建表而不引发任何错误:
CREATE TABLE test(
ID INTEGER NULL,
CONSTRAINT PK_test PRIMARY KEY(ID)
)
Run Code Online (Sandbox Code Playgroud)
请注意,我无法按预期插入NULL:
INSERT INTO test
VALUES(1),(NULL)
ERROR: null value in column "id" violates not-null constraint
DETAIL: Failing row contains (null).
********** Error **********
ERROR: null value in column "id" violates not-null constraint
SQL state: 23502
Detail: Failing row contains (null).
Run Code Online (Sandbox Code Playgroud)
为什么我可以创建一个具有自相矛盾定义的表格?ID列显式声明为NULLable,并且作为PRIMARY KEY的一部分,它隐式地不可为空.是否有意义?
编辑:如果这个自相矛盾的CREATE TABLE在那里失败了会不会更好?
ddl ×10
postgresql ×5
mysql ×3
sql ×3
sql-server ×2
alter-table ×1
collation ×1
constraints ×1
database ×1
encoding ×1
hibernate ×1
java ×1
jpa ×1
jtds ×1
primary-key ×1
table-rename ×1
transactions ×1