标签: ddl

多列上的Sqlite主键

在SQLITE中在多于1列上指定主键的语法是什么?

sqlite ddl primary-key composite-primary-key

590
推荐指数
7
解决办法
25万
查看次数

如何从MySQL中的表中删除列

给定使用以下表创建的表:

CREATE TABLE tbl_Country
(
  CountryId INT NOT NULL AUTO_INCREMENT,
  IsDeleted bit,
  PRIMARY KEY (CountryId) 
)
Run Code Online (Sandbox Code Playgroud)

如何删除列IsDeleted

mysql ddl alter-table

427
推荐指数
8
解决办法
73万
查看次数

alter table在column1之后添加MULTIPLE列

我需要向表中添加多个列,但在列调用后将列定位lastname.

我试过这个:

ALTER TABLE `users` ADD COLUMN
(
    `count` smallint(6) NOT NULL,
    `log` varchar(12) NOT NULL,
    `status` int(10) unsigned NOT NULL
) 
AFTER `lastname`;
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

您的SQL语法有错误; 检查与您的MySQL服务器版本对应的手册,以便lastname在第7行的')AFTER ' 附近使用正确的语法

如何在这样的查询中使用AFTER?

mysql ddl

332
推荐指数
5
解决办法
51万
查看次数

什么是DDL和DML

能否帮助我从头开始了解DDL和DML?

sql ddl dml

302
推荐指数
6
解决办法
42万
查看次数

为数据库上的用户授予所有权限

我想为用户提供数据库的所有权限,而不是将其作为管理员.我想这样做的原因是,目前DEV和PROD是同一集群上的不同DB,因此我不希望用户能够更改生产对象,但它必须能够更改DEV上的对象.

我试过了:

grant ALL on database MY_DB to group MY_GROUP;
Run Code Online (Sandbox Code Playgroud)

但它似乎没有给予任何许可.

然后我尝试了:

grant all privileges on schema MY_SCHEMA to group MY_GROUP;
Run Code Online (Sandbox Code Playgroud)

它似乎允许我创建对象,但不允许查询属于其他用户的该架构上的\ delete对象

我可以继续在MY_SCHEMA上向用户授予USAGE权限,但是它会抱怨没有权限在桌子上......

所以我想我的问题是:是否有任何简单的方法可以在数据库上为用户提供所有权限?

我正在研究PostgreSQL 8.1.23.

sql postgresql privileges ddl grant

176
推荐指数
5
解决办法
25万
查看次数

如果不存在,PostgreSQL创建表

在MySQL脚本中,您可以编写:

CREATE TABLE IF NOT EXISTS foo ...;
Run Code Online (Sandbox Code Playgroud)

... 其他的东西 ...

然后您可以多次运行该脚本而无需重新创建表.

你如何在PostgreSQL中做到这一点?

sql postgresql ddl create-table database-table

148
推荐指数
4
解决办法
17万
查看次数

更改表添加列语法

我正在尝试以编程方式将一个标识列添加到表Employees.不确定我的语法错误.

ALTER TABLE Employees
  ADD COLUMN EmployeeID int NOT NULL IDENTITY (1, 1)

ALTER TABLE Employees ADD CONSTRAINT
    PK_Employees PRIMARY KEY CLUSTERED 
    (
      EmployeeID
    ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, 
    ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我尝试导出脚本,但SQL Mgmt Studio会对整个Temp Table进行重命名.

更新:我认为它在第一个语句中窒息"关键字'COLUMN'附近的语法不正确."

sql t-sql sql-server ddl

135
推荐指数
3
解决办法
20万
查看次数

如何将外键添加到现有SQLite表?

我有下表:

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

如何添加外键约束parent_id?假设启用了外键.

大多数示例假设您正在创建表 - 我想将约束添加到现有表中.

sql sqlite ddl foreign-keys

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

ALTER TABLE没有锁定表?

在MySQL中执行ALTER TABLE语句时,整个表在语句的持续时间内被读锁定.如果它是一个大表,那意味着插入或更新语句可能会被锁定一段时间.有没有办法做一个"热改变",比如添加一个列,使得表在整个过程中仍然可以更新?

大多数情况下,我对MySQL的解决方案感兴趣,但如果MySQL无法做到,我会对其他RDBMS感兴趣.

为了澄清,我的目的只是为了避免在需要额外表格列的新功能推向生产时停机.任何数据库架构都会随着时间改变,这只是生活中的一个事实.我不明白为什么我们应该接受这些变化必然导致停工; 那只是弱者.

mysql sql ddl alter-table

105
推荐指数
6
解决办法
9万
查看次数

是否可以在主要SQL数据库中回滚CREATE TABLE和ALTER TABLE语句?

我正在研究一个发布DDL的程序.我想知道是否CREATE TABLE可以回滚和类似的DDL

  • Postgres的
  • MySQL的
  • SQLite的

描述每个数据库如何使用DDL处理事务.

sql ddl transactions create-table

103
推荐指数
4
解决办法
7万
查看次数