标签: ddl

如何将计算列添加到表中?

如何将计算列添加到已存在的表中?SO有计算列帮助 - TSQL但没有关于添加它们的信息.

t-sql ddl

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

在PostgreSQL中创建表时添加注释到列?

如何在PostgreSQL中向列添加注释?

create table session_log (
                UserId int index not null,
                PhoneNumber int index); 
Run Code Online (Sandbox Code Playgroud)

postgresql ddl comments

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

如何使用低权限的PL-SQL在Oracle中获取列数据类型?

我对Oracle数据库中的几个表具有"只读"访问权限.我需要获取一些列的架构信息.我想使用类似于MS SQL的东西sp_help.

我在这个查询中看到了我感兴趣的表:

SELECT * FROM ALL_TABLES
Run Code Online (Sandbox Code Playgroud)

当我运行此查询时,Oracle告诉我"在架构中找不到表",是的,参数是正确的.

SELECT 
DBMS_METADATA.GET_DDL('TABLE', 'ITEM_COMMIT_AGG', 'INTAMPS') AS DDL
FROM DUAL;
Run Code Online (Sandbox Code Playgroud)

在使用我的Oracle通用翻译器9000后,我推测这不起作用,因为我没有足够的权限.鉴于我的约束,我如何获得表上的列的数据类型和数据长度?我有PL-SQL语句的读访问权限?

oracle privileges ddl plsql

55
推荐指数
7
解决办法
21万
查看次数

如何从sqlite(3.6.21)表中删除约束?

我有下表:

CREATE TABLE child( 
  id INTEGER PRIMARY KEY, 
  parent_id INTEGER CONSTRAINT parent_id REFERENCES parent(id), 
  description TEXT);
Run Code Online (Sandbox Code Playgroud)

如何删除约束?

sqlite ddl constraints

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

截断存储过程中的表

当我在Oracle shell中运行以下内容时,它可以正常工作

truncate table table_name
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将其放入存储过程时

CREATE OR REPLACE PROCEDURE test IS
BEGIN
    truncate table table_name;
END test;
/
Run Code Online (Sandbox Code Playgroud)

它失败了

ERROR line 3, col 14, ending_line 3, ending_col 18, Found 'table', Expecting:  @   ROW  or   (   or   .   or   ;   :=
Run Code Online (Sandbox Code Playgroud)

为什么?

谢谢,Klas Mellbourn

oracle ddl plsql stored-procedures

49
推荐指数
4
解决办法
15万
查看次数

存在测试列,添加列和更新列

我正在尝试编写SQL Server数据库更新脚本.我想测试表中是否存在列,然后如果它不存在则添加具有默认值的列,最后根据同一表中不同列的当前值更新该列.我希望这个脚本可以多次运行,第一次更新表时,在后续运行中应该忽略脚本.我的脚本目前如下所示:

IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS
    WHERE TABLE_NAME = 'PurchaseOrder' AND COLUMN_NAME = 'IsDownloadable')
BEGIN

ALTER TABLE [dbo].[PurchaseOrder] ADD [IsDownloadable] bit NOT NULL DEFAULT 0

UPDATE [dbo].[PurchaseOrder] SET [IsDownloadable] = 1 WHERE [Ref] IS NOT NULL

END
Run Code Online (Sandbox Code Playgroud)

SQL Server返回错误"无效的列名'IsDownloadable'",即我需要在更新列之前提交DDL.我尝试了各种排列,但是我无法快速进行.

t-sql sql-server ddl

49
推荐指数
1
解决办法
5万
查看次数

mysql ALTER TABLE if列不存在

我有这个代码:

ALTER TABLE `settings`
ADD COLUMN `multi_user` TINYINT(1) NOT NULL DEFAULT 1
Run Code Online (Sandbox Code Playgroud)

并且我想仅在此列不存在时才更改此表.

我正在尝试很多不同的方法,但没有任何作用:

ALTER TABLE `settings`
ADD COLUMN IF NOT EXISTS `multi_user` TINYINT(1) NOT NULL DEFAULT 1
Run Code Online (Sandbox Code Playgroud)

用程序:

DELIMITER $$
CREATE PROCEDURE Alter_Table()
BEGIN
    DECLARE _count INT;
    SET _count = (  SELECT COUNT(*) 
                    FROM INFORMATION_SCHEMA.COLUMNS
                    WHERE   TABLE_NAME = 'settings' AND 
                            COLUMN_NAME = 'multi_user');
    IF _count = 0 THEN
        ALTER TABLE `settings` ADD COLUMN `multi_user` TINYINT(1) NOT NULL DEFAULT 1
    END IF;
END $$
DELIMITER ; 
Run Code Online (Sandbox Code Playgroud)

我在END IF中出错,然后在END中然后在1中出错

我怎样才能让它变得尽可能简单?

mysql ddl alter-table

46
推荐指数
6
解决办法
11万
查看次数

MySQL术语"约束"与"外键"的区别?

我在这里查看MySQL文档并试图理清FOREIGN KEY和CONSTRAINT之间的区别.我认为FK 一种约束,但是文档似乎在谈论它们,就像它们是分开的东西一样.

创建FK的语法是(部分)......

[CONSTRAINT [symbol]] FOREIGN KEY
    [index_name] (index_col_name, ...)
    REFERENCES tbl_name (index_col_name,...)
Run Code Online (Sandbox Code Playgroud)

所以"CONSTRAINT"子句是可选的.你为什么要包括它或不包括它?如果你把它留下来,MySQL会创建一个外键但不是约束吗?或者它更像是一个"CONSTRAINT"只不过是你FK的名字,所以如果你没有指定它,你会得到一个匿名的FK?

任何澄清将不胜感激.

谢谢,

阮经天

mysql ddl constraints foreign-keys

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

如何生成Oracle模式的整个DDL(可编写脚本)?

谁能告诉我如何为Oracle模式中的所有表,视图,索引,包,过程,函数,触发器,类型,序列,同义词,授权等生成DDL?理想情况下,我也想复制行,但这不太重要.

我希望在某种类型的预定作业上执行此操作,而不是每次都手动执行此操作,以便在SQL Developer中使用向导进行排除.

理想情况下,因为我将在几个具有相互授予和同义词的模式上运行它,我想有一种方法在输出中进行查找/替换,因此模式名称匹配我的新模式的名称成为.

谢谢!

oracle schema ddl

45
推荐指数
5
解决办法
19万
查看次数

如何为MySQL中的数据库中的所有表生成DDL

如何一次为MySQL数据库中的所有表生成DDL.我知道以下查询将输出表的DDL.但是我想要同时使用所有表的DDL,因为我的数据库中有数百个表.

show create table <database name>.<table name>;
Run Code Online (Sandbox Code Playgroud)

例如:

show create table projectdb.customer_details; 
Run Code Online (Sandbox Code Playgroud)

上面的查询将导致customer_details表的DDL .

我在Windows操作系统上使用MySQL和MySQL工作台.

mysql database ddl database-design

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