我有一个问题:我需要从我的SQLite数据库中删除一列。 我写了这个查询 alter table table_name drop column column_name 但它不起作用。 请帮帮我。
这个例子来自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 )代表人员的主键。 它是否正确? 为什么有人想使用多列作为主键而不是单列? 多less列可以一起用作给定表中的主键?
我正确地理解CREATE OR REPLACE基本上是指“如果对象存在,放弃它,然后创build它”? 如果是这样,我做错了什么? 这工作: CREATE TABLE foo (id NUMBER, title VARCHAR2(4000) DEFAULT 'Default Title') 而这不(ORA-00922:缺less或无效的选项): CREATE OR REPLACE TABLE foo (id NUMBER, title VARCHAR2(4000) DEFAULT 'Default Title') 我在做一些愚蠢的事情吗? 我似乎无法find关于这个语法的很多文档。
在MySQL中执行ALTER TABLE语句时,在整个语句期间整个表都被读取locking。 如果这是一张大桌子,这意味着插入或更新语句可能会被locking一段时间。 有没有办法做一个“热点改变”,如添加一个列的方式,表中仍然可以更新整个过程? 大多数情况下,我对MySQL的解决scheme感兴趣,但如果MySQL不能这样做,我会对其他RDBMS感兴趣。 为了澄清,我的目的只是为了避免需要额外的表列的新function推到生产时的停机时间。 任何数据库模式都会随着时间而改变,这只是一个事实。 我不明白为什么我们应该接受这些改变不可避免地会导致停机; 这只是弱。
我有下面的表格: CREATE TABLE child( id INTEGER PRIMARY KEY, parent_id INTEGER, description TEXT); 如何在parent_id上添加外键约束? 假设外键已启用。 大多数例子假设你正在创build表 – 我想将约束添加到现有的。
我试图以编程方式将一个标识列添加到一个表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重命名的事情。 更新 :我认为这是第一个语句与“靠近关键字'列'不正确的语法窒息”。
我需要添加多个列到一个表,但将列放在名为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服务器版本的手册,在第7行''AFTER lastname ''附近使用正确的语法 如何在这样的查询中使用AFTER?
鉴于使用以下创build的表: CREATE TABLE tbl_Country ( CountryId INT NOT NULL AUTO_INCREMENT, IsDeleted bit, PRIMARY KEY (CountryId) ) 我如何删除IsDeleted列?
你能帮我从头了解DDL和DML吗?
我想知道是否有可能在一个事务中运行多个DDL语句。 我对SQL Server特别感兴趣,即使与其他数据库(Oracle,至lessPostgreSQL)的答案也可能是有趣的。 我已经做了一些“创build表”和“创build视图”的交易内创build的表,似乎有一些不一致,我想知道如果不应该在交易内完成DDL … 我大概可以将DDL移到事务之外,但是我想为此得到一些参考。 我发现了这么多: MSDN页面数据库引擎中的隔离级别清楚地表明,在快照隔离下正在运行的显式事务中,可以执行哪些DDL操作是有限制的 – 但是我没有使用快照隔离,这应该导致错误。 这可以被解释,以便DDL操作可以在不同隔离级别下的显式事务中执行。 用于SQL Server的Oracle®数据库网关用户指南#DDL语句声明 在给定的事务中只能执行一个DDL语句 – 对于直接使用的SQL Server是否也有效? 对于Oracle: 在SO问题中unit testingDDL语句需要在一个事务中 ,据说Oracle对DDL语句做了隐式提交? (即使没有参考) 如果有关系,我通过JTDS JDBC驱动程序来处理Java。 Touko