标签: ddl

外键是首选字符串还是int?

我有一个带有useridusername列的用户表,两者都是唯一的.

介于userid和之间username,哪个更好用作外键?为什么?
我的老板想要使用字符串,那可以吗?

mysql sql ddl foreign-keys

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

在Oracle中更改关键字后的表

ALTER TABLE testTable ADD column1 NUMBER(1) DEFAULT 0 NOT NULL AFTER column2;
Run Code Online (Sandbox Code Playgroud)

为什么我也不能在Oracle中使用mySql语法?以上命令适用于MySql.你能给我一个有效的等价物吗?


Error report:
SQL Error: ORA-01735: invalid ALTER TABLE option
01735. 00000 -  "invalid ALTER TABLE option"
Run Code Online (Sandbox Code Playgroud)

我问是否有任何方法可以在我提供的Oracle命令中使用after子句?

oracle ddl alter-table oracle11g

11
推荐指数
2
解决办法
3万
查看次数

简化/简写SQL数据定义语言?

有些人喜欢用简单的文本方式描述他们的数据库结构,而不是使用CREATE TABLE语句.一些例子:

你知道任何将这种速记符号转换为实际SQL语句的软件吗?

mysql sql ddl shorthand database-schema

11
推荐指数
1
解决办法
3112
查看次数

如何让alembic在after_create上发出自定义DDL?

我有几个我想在create table之后运行的自定义DDL语句:

update_function = DDL("""                                                                                                                                                       
CREATE OR REPLACE FUNCTION update_timestamp()
RETURNS TRIGGER AS $$
BEGIN
    NEW.updated_at = now();
    RETURN NEW;
END;
$$ language 'pgplsql';
""")

update_trigger = DDL("""
CREATE TRIGGER update %(table)s_timestamp BEFORE UPDATE
ON %(table)s FOR EACH ROW EXECUTE PROCEDURE update_timestamp();
""")
Run Code Online (Sandbox Code Playgroud)

而且我像这样附上他们:

event.listen(Session.__table__, 'after_create', update_function)
event.listen(Session.__table__, 'after_create', update_trigger)
Run Code Online (Sandbox Code Playgroud)

当我这样做时create_all,我得到了我期望的SQL:

CREATE OR REPLACE FUNCTION update_timestamp()
RETURNS TRIGGER AS $$ 
BEGIN
    NEW.updated_at = now();
    RETURN NEW;
END;
$$ language 'pgplsql';


CREATE TRIGGER update session_timestamp BEFORE UPDATE
ON session …
Run Code Online (Sandbox Code Playgroud)

postgresql ddl sqlalchemy alembic

11
推荐指数
2
解决办法
2325
查看次数

如何更改dataype CLOB TO VARCHAR2(sql)

表:客户

ID      NAME             DATATYPE
NUMBER  VARCHAR2(100)    CLOB
Run Code Online (Sandbox Code Playgroud)

我想将DATA列更改CLOB为`VARCHAR2(1000)

我曾经尝试ALTER TABLE customers MODIFY DATA VARCHAR2 (1000)

ALTER TABLE customers MODIFY (DATA VARCHAR2 (1000))

alter table customers  modify
(data VARCHAR2(4000))
Run Code Online (Sandbox Code Playgroud)

如果数据类型不是clob但通常是有效的,ORA-22859因为我使用的是oracle toad/apex.

sql oracle ddl clob varchar2

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

用于SQL数据定义语言的Java API

在我编写之前,是否有用于操作数据库的Java API.就像一个面向对象的包装器java.sql.DatabaseMetaData,支持类似的东西Schema.createTable(name, columns)

显然,正确的SQL语句应该在后台基于正在使用的DB执行.

我对用于执行DDL语句的API特别感兴趣.

java sql database ddl

10
推荐指数
1
解决办法
2481
查看次数

使用JPA2 + Hibernate + Eclipse 4.2 + MySQL 5.5从实体生成模式

我是Hibernate/JPA的新手,我坚持认为是最后一步.我在我的MySQL实例中创建了一个模式,并希望从我创建的JPA实体中为模式生成表.我在eclipse"从实体生成表"中的JPA工具中有一个选项但是这给了我一条消息"通用平台不支持从实体生成表.是否需要使用插件或工具来使其工作?

mysql ddl hibernate jpa-2.0

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

JPA/EclipseLink - 创建脚本源,其中一个SQL语句占用多行

我想让持久性提供程序(EclipseLink 2.5.0)使用持久性单元属性"javax.persistence.schema-generation.create-script-source"和一个有效的SQL-自动在已存在的数据库中创建表. DDL脚本.

persistence.xml中:

<property name="javax.persistence.schema-generation.create-script-source" value="data/ddl.sql"/>
Run Code Online (Sandbox Code Playgroud)

ddl.sql:

USE myDatabase;

CREATE TABLE MyTable (
    id INTEGER NOT NULL AUTO_INCREMENT,
    myColumn VARCHAR(255) NOT NULL,
    PRIMARY KEY (id)
) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 DEFAULT COLLATE = utf8_bin;
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

[EL Warning]: 2014-02-12 13:31:44.778--ServerSession(768298666)--Thread(Thread[main,5,main])--Local Exception Stack: 
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to …
Run Code Online (Sandbox Code Playgroud)

ddl jpa newline persistence.xml eclipselink

10
推荐指数
1
解决办法
1176
查看次数

使用Draw.io生成SQL/DDL脚本?

互联网上有很多关于如何使用 sql 脚本将表导入 Draw.io 上的 ER 图表的资源。

例如这里(但我通过谷歌搜索找到了大量资源):

https://desk.draw.io/support/solutions/articles/16000082007-use-the-sql-plugin-to-create-an-entity-relationship-diagram (请参阅段落“从 SQL 代码创建 ER 图”)

我找不到任何相反方向的东西。是否可以从通过 Draw.io 创建的 ER 图创建 DDL 脚本?

(插件?导出为 xml 并在其他工具中导入?还有其他什么...)

我正在处理供应商以 Draw.io 格式提供的 ER 图。我想避免手写所有 DDL...(我的情况是 Oracle 12)

sql ddl erd draw.io

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

如何为 postgres 中的列设置非空约束

我尝试将 null 设置为如下所示的列。

ALTER TABLE myschema.table ALTER COLUMN (test_id,type) SET NOT NULL;

但它返回语法错误,例如 Syntax error at or near Line 3, Position 47

有没有适当的方法来实现这一目标?

如果有人有意见请告诉我。

谢谢

sql postgresql ddl alter-table

10
推荐指数
2
解决办法
5402
查看次数