我试图清理一个表,但没有摆脱表的实际结构.我有一个id自动递增的列; 我不需要保留ID号,但我确实需要它来保持其自动递增特性.我发现删除和截断,但我担心其中一个将完全删除整个表,使未来的插入命令无用.
如何从表中删除所有记录以便插入新数据?
我有一个包含6个MSSQL 2008表的列表,我想从我的数据库中一次删除.数据已完全迁移到新表.新表中没有引用旧表.
问题是旧表带有大量内部FK约束,这些约束已由工具自动生成(实际上是aspnet_regsql).因此,手动删除所有约束是一个真正的痛苦.
如何忽略所有内部约束而丢弃旧表?
我想执行一个简单DROP VIEW ...但它挂起.
我SELECT * FROM pg_locks WHERE NOT granted在Lock Monitoring上运行了此页面的查询.
但是,他们建议的以下查询不会返回结果:
SELECT bl.pid AS blocked_pid,
a.usename AS blocked_user,
kl.pid AS blocking_pid,
ka.usename AS blocking_user,
a.query AS blocked_statement
FROM pg_catalog.pg_locks bl
JOIN pg_catalog.pg_stat_activity a ON a.pid = bl.pid
JOIN pg_catalog.pg_locks kl ON kl.transactionid = bl.transactionid AND kl.pid != bl.pid
JOIN pg_catalog.pg_stat_activity ka ON ka.pid = kl.pid
WHERE NOT bl.granted;
Run Code Online (Sandbox Code Playgroud)
我现在应该在哪里看?
只是在我的电脑上试用ubuntu服务器并且已经测试了一些命令,包括mysql.我不确定为什么phpMyAdmin允许我创建像'testing?db'这样的数据库.我试图通过SSH删除此数据库,但我收到此错误:
mysql> show databases
-> ;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| phpmyadmin |
| testing?db |
| testing_db |
| wp |
+--------------------+
6 rows in set (0.00 sec)
mysql> DROP DATABASE testing?db;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?db' at line 1
mysql>
Run Code Online (Sandbox Code Playgroud)
我尝试使用'?'创建数据库 在它,它也给我语法错误.通过ssh.那么如何删除这个数据库?
如何删除包含" - "符号的数据库?
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| vms01 |
| vms-0.1.0 |
+--------------------+
4 rows in set (0.00 sec)
mysql> drop database vms-0.1.0;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use n
ear '-0.1.0' at line 1
mysql>
Run Code Online (Sandbox Code Playgroud) 我试图使用以下查询语句删除数据库中的表:
mysql_query('DROP TABLE IF EXISTS "dbName.tableName"') or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)
但我不断收到错误.有谁知道指定dbName.tableName是否无效?
我有一个数据库,在任何时间点都有数百个活动连接.当我使用DROP USER sql语句删除用户帐户时,需要约4秒,在此期间所有其他连接都具有"检查权限"状态.这意味着要删除1000个用户,我将有效地锁定数据库大约4000秒,这是不可接受的.但是,我注意到从mysql.users表中删除用户行是即时的.
从mysql.users kosher中删除一行?与使用DROP USER相比有哪些缺点?我在其他地方留下陈旧的行吗?有传播问题吗?我很可能不得不走这条路,但我想知道我还需要做些什么.
在oracle数据库上,我有一个外键,不知道它的名字,只有column_name和reference_column_name.我想写一个sql脚本,如果它存在,应该删除这个外键,所以这是我使用的代码:
declare
fName varchar2(255 char);
begin
SELECT x.constraint_name into fName FROM all_constraints x
JOIN all_cons_columns c ON
c.table_name = x.table_name AND c.constraint_name = x.constraint_name
WHERE x.table_name = 'MY_TABLE_NAME' AND x.constraint_type = 'R' AND c.column_name ='MY_COLUMN_NAME';
end;
Run Code Online (Sandbox Code Playgroud)
这个脚本的输出是"匿名块完成",所以它很成功,但是当我添加drop部分时:
declare
fName varchar2(255 char);
begin
SELECT x.constraint_name into fName FROM all_constraints x
JOIN all_cons_columns c ON
c.table_name = x.table_name AND c.constraint_name = x.constraint_name
WHERE x.table_name = 'MY_TABLE_NAME' AND x.constraint_type = 'R' AND c.column_name ='MY_COLUMN_NAME';
if (fName != '') THEN
alter table MY_TABLE_NAME drop …Run Code Online (Sandbox Code Playgroud) 我有一个包含4列,ID,NAME,AGE和COUNTRY的表.一段时间以来,我已将我的AGE列设置为未使用以下命令
alter table Personal set unused column AGE;
Run Code Online (Sandbox Code Playgroud)
现在我想再次使用相同的列AGE,如何在Oracle(10g)中执行此操作.
并删除一列并将列设置为Unused,这是最佳选择.请指导我.
sql-drop ×10
mysql ×5
sql ×4
constraints ×1
database ×1
db2 ×1
hang ×1
oracle ×1
oracle10g ×1
php ×1
postgresql ×1
sql-delete ×1
sql-server ×1
view ×1