我想编写一个SQL命令来从一个ALTER TABLE语句中删除单个表中的多个列.
来自MSDN的ALTER TABLE文档 ......
Run Code Online (Sandbox Code Playgroud)DROP { [CONSTRAINT] constraint_name | COLUMN column_name }指定从表中删除constraint_name或column_name.如果兼容级别为65或更早,则不允许使用DROP COLUMN.可以列出多个列和约束.
它说mutliple列可以在语句中列出,但语法不显示可选的逗号或任何甚至暗示语法的东西.
我应该如何编写SQL以在一个语句中删除多个列(如果可能)?
我想从我的表中删除约束.我的查询是:
ALTER TABLE `tbl_magazine_issue`
DROP CONSTRAINT `FK_tbl_magazine_issue_mst_users`
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个错误:
#1064- 您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便FK_tbl_magazine_issue_mst_users在第1行的"约束" 附近使用正确的语法
我有SQL Server数据库,我才意识到我可以将其中一个列的类型更改int为bool.
如何在不丢失已输入该表的数据的情况下执行此操作?
目前我有以下MySQL表: Employees (empID, empName, department);
我想将表更改为以下内容: Employees (empID, department, empName);
如何使用ALTER语句完成此操作?
注意:我只想更改列位置.
我正在尝试使用PHP向我的MYSQL表添加一个新列.我不确定如何更改我的表以便创建新列.在我的评估表中,我有
assessmentid | q1 | q2 | q3 | q4 | q5
Run Code Online (Sandbox Code Playgroud)
假设我有一个带文本框的页面,我在文本框中键入q6并按下按钮,然后表格更新为
assessmentid | q1 | q2 | q3 | q4 | q5 | q6
Run Code Online (Sandbox Code Playgroud)
提前致谢
<?php
include 'core/init.php';
include 'core/admininit.php';
include 'includes/overall/overall_header.php';
adminprotect_page();
include 'includes/adminmenu.php';
?>
<?php
mysql_query("ALTER TABLE `assessment` ADD newq INT(1) NOT NULL AFTER `q10`");
?>
<h1>Input Career Name</h1>
<form method="post" action="">
Career Name
<input type="text" name="newq" size="20">
<input type="submit"
name="submit" value="Submit">
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我只是想在数据库中的表(main_table)中添加一个名为"location"的列.我运行的命令是
ALTER TABLE main_table ADD COLUMN location varchar (256);
Run Code Online (Sandbox Code Playgroud)
main_table包含> 2,000,000行.它持续运行超过2小时仍未完成.
我试图用来mytop
监视这个数据库的活动,以确保查询没有被其他查询过程锁定,但似乎没有.应该花那么长时间吗?实际上,我刚刚在运行此命令之前重启了机器.现在这个命令仍在运行.我不知道该怎么做.
我有一个表格,其列表类型在每次更新时都timestamp默认current_timestamp并current_timestamp更新.
我想删除此列上的"on update"功能.如何编写alter语句?
我尝试了以下方法:
ALTER TABLE mytable alter column time set DEFAULT now();
Run Code Online (Sandbox Code Playgroud)
但这没用.
我有一个使用以下行创建的计算列:
alter table tbPedidos
add restricoes as (cast(case when restricaoLicenca = 1 or restricaoLote = 1 then 1 else 0 end as bit))
Run Code Online (Sandbox Code Playgroud)
但是,现在我需要更改此列,例如:
alter table tbPedidos
alter column restricoes as (cast(case when restricaoLicenca = 1 or restricaoLote = 1 or restricaoValor = 1 then 1 else 0 end as bit))
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我正在尝试为case语句输入另一个条件,但它不起作用.
非常感谢!
我检查了Oracle提供的文档,并找到了一种修改约束而不删除表的方法.问题是,它在修改时出错,因为它无法识别关键字.
使用EMS SQL Manager进行PostgreSQL.
Alter table public.public_insurer_credit MODIFY CONSTRAINT public_insurer_credit_fk1
deferrable, initially deferred;
Run Code Online (Sandbox Code Playgroud)
我可以通过使用以下方法删除约束来解决它:
ALTER TABLE "public"."public_insurer_credit"
DROP CONSTRAINT "public_insurer_credit_fk1" RESTRICT;
ALTER TABLE "public"."public_insurer_credit"
ADD CONSTRAINT "public_insurer_credit_fk1" FOREIGN KEY ("branch_id", "order_id", "public_insurer_id")
REFERENCES "public"."order_public_insurer"("branch_id", "order_id", "public_insurer_id")
ON UPDATE CASCADE
ON DELETE NO ACTION
DEFERRABLE
INITIALLY DEFERRED;
Run Code Online (Sandbox Code Playgroud) 我有一个表有170,002,225行,约35列和两个索引.我想添加一个列.alter table命令大约需要10个小时.在那段时间内,处理器似乎都不忙,也没有过多的IO等待.这是一款带有大量内存的4路高性能盒子.
这是我能做的最好的吗?有什么我可以看一下在调整db时优化add列吗?
alter ×10
mysql ×6
sql ×4
performance ×2
sql-server ×2
add ×1
constraints ×1
database ×1
edit ×1
foreign-keys ×1
php ×1
postgresql ×1
t-sql ×1
timestamp ×1