我正在使用事务对我的数据库进行修改,这样,如果在更改过程中有任何失败,我可以回滚而不会造成任何伤害。
但是,由于我基于将我的数据库置于其最后状态的查询列表来运行我的查询(每当我需要更改时,我只需向列表中添加一个新规则),所以当我尝试删除在同一事务期间添加的列时,它将失败。
示例:
START TRANSACTION;
ALTER TABLE "servers" ADD COLUMN "test" INTEGER NOT NULL;
ALTER TABLE "servers" DROP COLUMN "test";
我们有两个数据库表ErrorLog和Audit,它们在过去几年中都增长了相当大。因此,为了缩小数据库的大小,我必须编写一个脚本,从这两个表中清除所有6个月以上的行。
这就是我想出来的:
ALTER DATABASE StudioWebTest SET RECOVERY SIMPLE;
DELETE FROM [Audit] WHERE AuditDate < DATEADD(M, -6, GETDATE());
DELETE FROM [ErrorLog] WHERE ErrorDate < DATEADD(M, -6, GETDATE());
ALTER DATABASE S
我正在用PHP编写一个时事通讯服务,在该服务中,用户可以通过单击电子邮件中的链接取消订阅。此链接包含电子邮件的id,然后用于查找数据库中的电子邮件,因此可以删除该邮件。相关代码如下:
DELETE FROM Emails WHERE id='{$email_id}'
出于安全考虑,我认为我创建了多个数据库用户,每个用户只有一个特权。我有一个选择用户,它只能选择。和一个删除-用户,这只能删除。让我困惑的是,运行上面的代码,同时使用删除用户的用户名和密码,会产生以下输出:
选择拒绝用户“用户名”@“主机”的命令,用于表格“电子邮件”中的“id”列
通过授予delete-用户
我需要一个MySQL Skript,它执行以下操作:
删除数据库的区块,直到删除了所有大于10000的link_id
示例:
x = 10000
DELETE FROM pligg_links WHERE link_id > x and link_id < x+10000
x = x + 10000
...
所以它会删除
DELETE FROM pligg_links WHERE link_id > 10000 and link_id < 20000
然后
DELETE FROM pligg_links WHERE link_id > 20000 and link
我在Azure中有一个数据库,其中目前有750 it的数据。为了降低运行数据库的成本,我希望尽可能地保持它的小,特别是在1TB以下。
这个表让我们称它为"BigTable“,它占存储内存的95%,所占份额最大。每天都会有更多的数据存储在这个数据库中,而且这种情况持续了四年。已经超过两年的数据将不再需要。这就是我已经做过的:
我建立了第二个数据库"test_database“并进行了实时恢复,使用”导出“函数对数据库进行了备份,并将其保存在blob存储中。效果很好。
通过运行以下语句,我使用工具(SSMS)删除了不必要的数据:
Delete
From Bi
我对VB.NET和MySqL都是新手。我想删除数据库中的记录。使用,
Dim SQLStatement As String = "DELETE name,date FROM people"
RetrieveInfos(SQLStatement)
哪里,
Public Sub RetrieveInfos(ByRef SQLStatement As String)
Dim cmd As MySqlCommand = New MySqlCommand
With cmd
.CommandText = SQLStatement
运行以下查询将导致客户端数据库中的所有约束。但是,结果集中有几行似乎没有父级,即parent_object_id = 0和OBJECT_NAME(parent_object_id)返回NULL。
SELECT name, type_desc, OBJECT_NAME(parent_object_id), parent_object_id
FROM sys.objects
WHERE is_ms_shipped = 0
AND type_desc LIKE '%_CONSTRAINT'
这是否意味着数据库中存在孤立约束?如果是这样,我如何删除它们?
从它们的名字中,我可以看出它们