问题标签 [drop-table]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6166 浏览

ruby-on-rails-4 - Rails 4:如何从数据库中删除或删除(连接)表?

在 Rails 4 文档(http://guides.rubyonrails.org/migrations.html#creating-a-join-table)中,我看到要删除表或连接表,可以在命令行中使用以下方法:

drop_tabledrop_join_table

然而,它进一步补充说,必须“提供一个块”——我不知道在执行中会是什么样子。

不管这是我的问题:我如何删除表或删除连接表?

另外,当我说 drop 时,我的意思是从我的数据库中删除它。我知道我不能删除迁移,并且回滚迁移是不明智的,因为它会破坏协作工作——所以我想尽可能避免删除迁移文件和回滚迁移。

我在创建迁移以填充数据库时犯了一个错误。我知道如何修改表的列(添加新的、重命名和删除它们)。我只是不知道如何清除表。

谢谢你考虑我的问题。

我想从我的数据库中完全删除一个表。我的应用程序在 Rails 4 上运行。

0 投票
1 回答
20126 浏览

mysql - 无法删除 mysql 表

我收到一个奇怪的错误。我有一张桌子animals,我想放下它。由于外键约束失败,我无法删除表。我知道在删除表之前我必须删除外键。问题是这个表没有外键。我已经放弃了它们。SQLyog 反映它们已被删除。但我仍然可以在信息架构中找到它们。好像我把钥匙掉到一半了。

如何在不删除数据库的情况下删除此表?我需要重新设置此表的密钥,我只想删除它并重新创建它。

编辑:这是来自 SQL 的错误消息:

0 投票
2 回答
1504 浏览

sql - 创建表脚本语法错误“表不存在”

这是我第一次生成可以使用该-f选项通过 psql 终端运行的脚本。

我的脚本如下:

这会产生以下错误:

有人知道是什么原因造成的吗?从我所见,表“滑雪道”是在我尝试插入之前创建的,所以它怎么能说它不存在?

谢谢,克里斯。

0 投票
1 回答
10207 浏览

mysql - 检查 var 在存储过程中是否为 NULL

我有一个删除所有表的脚本。

它只能完美运行一次 - 当至少存在一个表时。第二次运行给我一个错误:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行 SQL.sql 9 1 的“NULL”附近使用正确的语法

我正在尝试使用 IF 语句,但它仍然不起作用:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行 SQL.sql 8 1 的“if @tables IS NOT NULL THEN SET @tables = CONCAT('DROP TABLE ', @tables)”附近使用正确的语法

在这种情况下使用 IF 的正确方法是什么?

0 投票
1 回答
494 浏览

sql - 在 PostgreSQL 中删除名称为空的表

我正在尝试删除存储在 PostgreSQL 8.3.8 32 位中的一张表。

奇怪的是我的桌子没有名字,它是空的。我在哪里做:

它说我的表名名称为空。当我尝试删除我的表时:

其中 sde 是我的模式名,出现错误,告诉我存在语法错误。

有什么办法可以删除那个表吗?

我也试过了

但仍然出现错误。

我的表有 OID。是否可以通过 OID 删除它?

对我来说最好的解决方案是重命名该表,以便我可以从该表中保存我的数据。

0 投票
2 回答
676 浏览

php - MySQL 和 PHP DROP TABLE 基于表中的值

我有一个数据库,其中条目插入到带有时间戳的表中(来自 PHP 的 inttime()不是 SQL 时间戳)。我想进行查询以删除最大时间戳小于到期时间(从执行查询时开始的某个时间)的所有表。现在我有

这会产生 SQL 语法错误。

实现这一目标的正确方法是什么?此外,是否有可能消除 PHP 逻辑,只循环遍历每个表,并在必要时将其全部删除在 SQL 中?

0 投票
5 回答
66569 浏览

database - 如果 sql 语句中存在表,则从 oracle 数据库中删除表

我必须使用 SQL 语句来删除表,如果表不存在,它将崩溃。是否可以使用IF语句删除表 s.executeUpdate("DROP TABLE employee");

0 投票
1 回答
881 浏览

mysql - MySQL 版本 5.5.37:使用 CURSOR 删除超过 30 天的表

我一直在研究试图找到一种从查询结果中获取所有行并单独处理它们的方法。我写了一个我认为可行但显然不行的脚本。

剧本:

该脚本旨在删除所有超过 30 天的表。虽然它似乎不适用于 MySQL 版本 5.5.37。

我是 MySQL 新手,我正在使用 MySQL for Windows (XP) 运行服务器。也许 CURSORS 的这种语法对于相应的服务器版本不正确?我不确定,但如果有人能帮助我,我会很高兴。

编辑:

这是我尝试从 SQL 命令行执行脚本时返回的错误消息:

ERROR 1064 (42000):您的 SQL 语法有错误;

检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“DECLARE @name char(20)”附近使用正确的语法

ERROR 1064 (42000):您的 SQL 语法有错误;

检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“DECLARE c1 CURSOR READ_ONLY FOR SELECT table_name FROM information_schema.tables”附近使用正确的语法

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 'FETCH NEXT FROM c1 INTO @table_name 附近使用的正确语法

而@@FETCH_STATUS = 0 开始

PREPARE st' 在第 1 行

更新:

我也尝试了这个脚本(注意:我打算创建一个每天执行的事件以删除超过 30 天的表。):

在 SQL 命令行中运行此脚本会返回:

ERROR 1064 (42000):您的 SQL 语法有错误;

检查与您的 MySQL 服务器版本相对应的手册,以获取在 '@name char(20); 附近使用的正确语法;DECLARE c1 CURSOR READ_ONLY FOR SELECT table_name FROM infor' 在第 5 行

0 投票
1 回答
2013 浏览

sql - 对临时表使用 truncate vs drop 的最佳实践

所以我一直在研究关于使用 TRUNCATE 和 DROP 的 SQL 标准。我的公司正在尝试确定我们是否应该在 DROP 之前使用 TRUNCATE 作为标准编码约定,或者我们是否应该只使用 DROP。通常,我们总是使用 TRUNCATE 和 DROP 而不仅仅是 DROP。

根据这个先前回答的问题,看起来没有理由同时使用两者: https ://dba.stackexchange.com/questions/4163/why-use-both-truncate-and-drop

上面的链接还解决了使用 TRUNCATE 的问题,存在不必要的开销。

但是,由于似乎很多人仍然同时使用 TRUNCATE 和 DROP 而不是只使用 DROP,那么在 DROP 之前使用 TRUNCATE 有什么好处?

0 投票
3 回答
18971 浏览

sql - SQL Server:事务内的“DROP TABLE”是否会导致隐式提交?

我的问题很简单,但在创建此交易后我仍然怀疑。如果我执行以下代码:

我可以执行恢复删除表的 ROLLBACK TRANSACTION 吗?我问是因为我不知道“对象资源管理器”中会发生什么,而且我没有发现任何关于这个主题的问题,所以我认为这可能是一个有用的问题。