Questions tagged «ddl»

数据定义语言是SQL的子集,用于操纵数据库的结构元素,而不是表的内容。CREATE,DROP,ALTER和相关语句。



10
在MySQL中的特定列之后添加多个列
我需要将多个列添加到一个表中,但将这些列放置在名为的列之后lastname。 我已经试过了: ALTER TABLE `users` ADD COLUMN ( `count` smallint(6) NOT NULL, `log` varchar(12) NOT NULL, `status` int(10) unsigned NOT NULL ) AFTER `lastname`; 我收到此错误: 您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以lastname在第7行的')AFTER ' 附近使用正确的语法 如何在这样的查询中使用AFTER?
361 mysql  ddl 

12
什么是DDL和DML?
我听说过有关数据库的术语DDL和DML,但我不明白它们是什么。 它们是什么,它们与SQL有何关系?
345 sql  ddl  dml 

4
向数据库上的用户授予所有权限
我想给用户一个数据库的所有权限,而无需使其成为管理员。之所以要这样做,是因为目前DEV和PROD是同一集群上的不同DB,所以我不希望用户能够更改生产对象,但用户必须能够更改DEV上的对象。 我试过了: grant ALL on database MY_DB to group MY_GROUP; 但似乎没有任何许可。 然后我尝试了: grant all privileges on schema MY_SCHEMA to group MY_GROUP; 而且似乎授予了我创建对象的权限,但不允许我在该模式上查询\删除属于其他用户的对象 我可以继续向MY_SCHEMA上的用户授予USAGE权限,但随后它会抱怨没有对该表的权限... 所以我想我的问题是:是否有任何简单的方法可以将所有权限授予数据库上的用户? 我正在使用PostgreSQL 8.1.23。


4
更改表添加列语法
我试图以编程方式将标识列添加到表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] 我究竟做错了什么?我试图导出脚本,但是SQL Mgmt Studio会执行整个Temp Table重命名的操作。 更新:我认为第一条语句“关键字'COLUMN'附近的语法不正确”令人窒息。
142 sql  sql-server  tsql  ddl 


1
spring.jpa.hibernate.ddl-auto属性在Spring中如何正常工作?
我当时在从事我的Spring Boot应用程序项目,并注意到,有时到另一个服务器(SQL Server)上的数据库存在连接超时错误。当我尝试执行一些脚本迁移时,这种情况会特别发生,FlyWay但在尝试几次后仍可以正常工作。 然后我注意到我没有spring.jpa.hibernate.ddl-auto在属性文件中指定 。我做了一些研究,发现建议增加 spring.jpa.hibernate.ddl-auto= create-drop开发。并将其更改为:spring.jpa.hibernate.ddl-auto= none生产中。 但是我实际上并不了解它实际上是如何工作的,以及休眠如何使用create-drop或none值生成数据库模式。您能否从技术上解释它是如何工作的,以及在开发和生产服务器上使用此属性的建议?谢谢

8
如果不存在PostgreSQL,可以模拟CREATE DATABASE吗?
我想创建一个通过JDBC不存在的数据库。与MySQL不同,PostgreSQL不支持create if not exists语法。做到这一点的最佳方法是什么? 应用程序不知道数据库是否存在。它应该检查数据库是否存在并且应该使用它。因此,连接到所需的数据库很有意义,并且如果由于数据库不存在而导致连接失败,则应该创建新数据库(通过连接到默认postgres数据库)。我检查了Postgres返回的错误代码,但找不到与之相同的任何相关代码。 实现此目的的另一种方法是连接到postgres数据库,并检查所需的数据库是否存在,并采取相应的措施。第二个要解决一些麻烦。 有没有办法在Postgres中实现此功能?
115 sql  database  postgresql  jdbc  ddl 

10
从SQLite表中删除列
我有一个问题:我需要从SQLite数据库中删除一列。我写了这个查询 alter table table_name drop column column_name 但它不起作用。请帮我。
114 sql  sqlite  ddl 

9
为什么要使用多列作为主键(复合主键)
此示例摘自w3schools。 CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName) ) 我的理解是,两列(P_Id和LastName)一起代表该表的主键Persons。这样对吗? 为什么有人要使用多列而不是单列作为主键? 给定表中可以将多少列一起用作主键?


19
ALTER TABLE没有锁定表?
当在MySQL中执行ALTER TABLE语句时,整个表在语句期间被锁定(允许并发读取,但禁止并发写入)。如果它是一个大表,则可能会在很长一段时间内阻止INSERT或UPDATE语句。有没有一种方法可以进行“热更改”,例如以在整个过程中仍可更新表的方式添加列? 通常,我对MySQL解决方案感兴趣,但如果MySQL无法做到,我也会对其他RDBMS感兴趣。 澄清一下,我的目的仅仅是避免在需要额外表列的新功能投入生产时避免停机。任何数据库架构都会随着时间而改变,这是生活中的事实。我不明白为什么我们应该接受这些变化不可避免地导致停机的原因。那太弱了。
107 sql  mysql  ddl  alter-table 

4
只能有一个自动列
我该如何从MySQL中纠正错误“您只能有一个自动增量列”。 CREATE TABLE book ( id INT AUTO_INCREMENT NOT NULL, accepted_terms BIT(1) NOT NULL, accepted_privacy BIT(1) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
104 mysql  ddl 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.