如果我听起来像个菜鸟,我事先很抱歉。我正在查看存储过程的代码,我偶然发现:
select
...
into
....
from
....
where
....
for update;
我不明白for update;的目的是什么。我确实理解正常的更新,类似于:。但我无法理解for update;和它的目的。
我环顾四周,却找不到明确的解释。
下面的每一行都是单独工作的,但是我想将它们合并成一个查询。
$query4="DELETE FROM a WHERE email = '$email'";
$query2="DELETE FROM b WHERE email = '$email'";
$query3="DELETE FROM c WHERE email = '$email'";
$query1="DELETE FROM d WHERE email = '$email'";
$result = mysq
我有一张两栏的桌子:
user_id,parent_id
我想运行以下查询:
SELECT
(CASE WHEN parent_id IS NOT NULL
THEN parent_id
ELSE user_id
END) as id
FROM users
WHERE id in (43, 23, 11, 277);
但它不起作用-它说,不能找到id列。如何使它在alias子句中使用该where?
我试着在一段时间(6个月)后使用gem‘无论何时’清理记录。
在我的调度器中:
every 1.month, at: '1am' do
rake 'lib/tasks/cleanup_user.rake'
end
在lib/task/cleanup_user.rake中
@user = User.all.where(:created_at > 'Time.6.month.ago').delete
这似乎是对的。然而,我得到了错误‘未初始化常量用户’。我是rails的新手。请帮帮我。
编辑:我通过运行整洁的一行命令改变了游戏:
set :
我在php的世界中摸索着前进,但仍在摸索着前进。我已经写了一个查询,可以很好地从mysql中收集我需要的东西,但我就是不能让它与WHERE条件一起工作。任何帮助都将不胜感激!
下面是不带WHERE条件的工作查询:
SELECT foo.*, users.name, SUM(bar.amt) Total FROM foo
LEFT JOIN bar ON foo.id = bar.foo_id
LEFT JOIN users ON foo.foo_owner_id = users.id
LIMIT 16 GROUP BY foo.id"
下面是我认为可
我不明白为什么Oracle会返回这个奇怪的结果。我认为代码真的非常清晰。
我期望没有条件=(在外部连接条件中不为空)+(在外部连接条件中为空)
因为我将外部连接右侧表列中的IS NULL / IS NOT NULL解释为EXISTS / NOT EXISTS条件。
为什么我错了?
DESCRIPTION COUNT(1)
---------------------------------- ----------
No condition 6403
is NOT null in OUTER
我都快疯了。我有一个WHILE循环,它从链接服务器中抓取一行并将其放入本地表。逻辑运行良好,但处理的行数越多,循环的速度就越慢。
SELECT @max_id = MAX(id), @min_id = MIN(id)
FROM #ids
WHILE @min_id <= @max_id
BEGIN
SET @sql = 'SELECT row1, row2, row3 FROM [Linked Server Table]'
INSERT INTO [Local Table]
(row1 ,row2, row
我的主要目标是在正确创建新记录后删除旧记录。我尝试将其赋值给变量并使用#dup方法。请看示例代码:
def my_method
old_items = @user.items.dup
new_items = @user.items.new(item_params) # one or more
# confusing part
old_items.destroy_all if new_items.save
end
我想销毁old_items,但当我创建new_items时,它们是old_items == new_items。为什么duplication #dup不能在这里工作
我通过Java代码对access中的一个表进行了更新,但它不起作用。但是,当我将executeUpdate()的结果打印到控制台时,结果显示为1,但在数据库中没有变化。你能告诉我问题出在哪里吗?
System.out.println("here");
PreparedStatement st = conn.prepareStatement(
"UPDATE StocProduseCuFactura SET cantitate = " +
"cantitate - ? WHERE nume = ? and um = 'buc'
我试图在事务执行后找到回滚事务的方法。
例如:
DECLARE @tsubaki VARCHAR(25);
SET @tsubaki = 'A Transaction';
BEGIN TRANSACTION @tsubaki
UPDATE dbo.Maka SET id = 400, name = 'inu' --notice I didn't put there where clause
COMMIT TRANSACTION
后来,我意识到我更新了数据库中的所有内容,而不是我最初想要的一条记录。
现在,我尝试编写代码,以便在更新之前回滚:
DECLA
你好,我在php脚本中填充了一个Mysql表。在这个脚本中,我检查特定类型的条目数量是否达到了通知客户的最大值。如果条目数减少,我让他在我的表中插入一个新条目。这张桌子看起来像这样
--------------------
Date | Type
--------------------
Tuesday 13:00 | Car
检查的php脚本如下所示
<?php
$sql = $conn->prepare("SELECT count(*) FROM Table WHERE Date='Tuesday 13:00' AND Type=&
我的选择起作用,但我的更新和删除不起作用。
db_jb = create_engine(jb)
self.jobs = Table('Job', MetaData(jb), autoload=True)
# select - works
ss = select(self.jobs).where(
self.jobs.c.job_guid == jobGuid
).limit(1)
rs = ss.execute()
rows = [r for r in rs]
rs.close()
# update - does not work
su = update(self.jo
我想要创建过滤器查询,它在多到多的关系表上使用AND和OR。
表仅由2列id_product和id_category组成
我正在使用的查询,但不起作用:
SELECT id_product FROM id_category WHERE ( id_category = 1) AND (id_category = 2)
AND ( id_category = 3 OR id_category = 4 OR id_category = 5) GROUP BY id_product
我想检索的产品是在同一时间在类别。只有第1和第2类以及(3或4或5)类产品的ID
我想删除与我的应用程序的每个用户相关联的所有帖子,以满足确定的条件。特别是,我想删除所有超过30天的帖子,只有当一个用户有超过20个帖子。首先,我编写了以下代码:
users = User.all
users.each do |user|
if user.posts.any? && user.posts.count > 20
user.posts.delete_all('created_at < ?', 30.days.ago)
end
end
但是,查看集合的、方法delete_all并不意味着记录实际上已从数据库
我有一个TRY CATCH语句,其中TRY中的事务中有一些代码,TRY中有事务之外的其他代码。如果外部代码(仍在TRY中)抛出错误,则不会在捕获中回滚我的事务。但是,如果我将代码移除在事务之外,如果出现错误,则事务将被回滚。为什么会这样?SQL Server 2014。
我的密码。如果远程proc引发错误,则事务不会回滚:
BEGIN try
begin transaction
INSERT INTO bos_south_florida_job_map (job_id, original_job_id,
created_date, updated_date,completed_sta
是否可以锁定表以防止插入/更新/删除?
我需要锁定一个表,删除一些记录,并“重置”一个生成器。
>> lock table logs to prevent inserts/updates/deletes;
delete from logs where id <= :lastIdProcessed;
if ((select count(1) from logs) = 0) {
alter sequence logSequence restart with 0;
}
>> commit and release table
另一个问题是,如果有一个insert
我有以下查询:
SELECT
pupils.txtSchoolID, pupils.txtPreName, pupils.txtSurname,
pupils.txtForm, pupils.txtAdditionalHealth, pupils.txtAllergyNotes,
notes.txtNote
FROM
TblPupilManagementPupils AS pupils
LEFT OUTER JOIN
TblPupilManagementHealthNotes AS notes ON pupils.txtSchoolI
我在SQL Server中有一个表,它有一个PK (ID)和另一个(逻辑)主键,主键由两个其他列组成(尽管对此没有唯一约束)。比如说,表PERSON,PK = PERSON_ID,然后是NAME,SURNAME,AGE
我希望有可能这样说
UPDATE PERSON SET AGE = 43 WHERE NAME = 'XX' AND SURNAME = 'YYY'
并且仅当‘更新行’= 1时才执行它,否则(超过1行)根本不执行。问题是,我不确定姓名和姓氏是否唯一地标识了一条记录,并且我无法先验地告诉它。
想法?
我正在尝试从一个表中选择一个特定的信息,该表取决于其他两个表的条件。 当我尝试单独的条件工作时,但当我尝试与to条件一起工作时,则不起作用。 因此,我从表中获得了正确的数据: $sql = "SELECT * FROM commerce_order WHERE m_key = 'total'"; 同时,我也从表中得到了结果: $sql = "SELECT *
FROM commerce_order M
JOIN commerce_order_items I
ON M.item_id = I.
我有个疑问..。
SELECT
CONVERT(NUMERIC(8, 2), ResultLevel),
*
FROM
dbo.DrugTestResult
WHERE
DrugID = 'THC'
AND ISNUMERIC(ResultLevel) = 1
AND (CONVERT(NUMERIC(8, 2), ResultLevel) >= 50
AND CONVERT(NUMERIC(8, 2), ResultLevel) <= 99999)
AND CONVERT(
在SQL Server中,这将产生多少事务?
DECLARE @deleted BIGINT
SET @deleted = 100000
WHILE @deleted = 100000
BEGIN
DELETE TOP(100000) FROM MYTABLE WITH (ROWLOCK)
where Col1 = 7048 and COL2 = 39727 and Col3 = 0
SET @deleted = (SELECT @@ROWCOUNT)
END
如果我在运行10分钟后取消,它需要回滚吗?
如果我不希望它在取消后回滚到一次迭代之后,添加一个正在进行的事务和结束事务会解决这个问题吗
我有一个数据库,我想查询与product_fields连接的产品中的所有记录。但在product_fields中可能没有颜色的记录,在这种情况下,我仍然希望显示一条记录,只有字段颜色可以保留为空。product_fields表由同一产品的几条记录组成,并有一个“name”和“value”字段。
看看我想出来的这句话:
SELECT p.*, c.value AS color
FROM products p
LEFT JOIN product_fields c ON c.product_id = products.id
WHERE c.name = 'color'
AND pr
假设我们有一个交易A:
BEGIN TRAN A;
//--------------------< time a
SELECT productid, unitprice
FROM Production.Products
WHERE productid = 2;
//--------------------< time b
UPDATE Production.Products
SET unitprice += 1.00
WHERE productid = 3;
COMMIT TRAN A;
我们知道,对于事务A(在默认的读取提交隔离级别下),需要一个共享锁(对于produ
我正在尝试执行查询,但它不起作用。
SELECT id,
idOperacije,
idRadniNalog,
sum(kolicina) as total
FROM `artikli_presetorijum_zapisi`
WHERE idRadniNalog = 9
AND idOperacije = 105
AND total > 2000
GROUP BY idOperacije
我得到的错误是:
即使我在where语句中使用sum(kolicina),在where语句中,未知列‘sum’在where子句中也会出现相同的问
我有一个名为users的表。
id name date cdate c a b
1 rz 42121221 42121221 0 1 0
2 an 12122111 42121221 0 0 1
3 cb 22121221 42121221 1 1 1
4 ss 3321221 42121221 1 0 0
我必须选择两个日期之间的值,然后必须使用以下语句找到计数。
SELECT COALESCE(SUM(I
我有三张桌子是有问题的。类别、词汇和tex。我正在试图弄清楚如何在我的查询中有多个连接,我想你可以添加你想要的连接,只要你正确地引用它们。
因此,以下两种方法在这里可以很好地工作:
1.
SELECT
categories.ID AS ID,
categories.ParentID AS ID,
vocabulary.value AS Name
FROM categories
INNER JOIN vocabulary
ON categories.sid=vocabulary.sid
WHERE vocabulary.langid=1
2.
SELECT
categories.ID AS
我知道这是非常基础的,但因为我是新手,所以我想弄清楚一个疑点。我必须获得特定列的总和,然后根据两个标准对该列进行分组。尝试的代码是: Select sum (column_name)
from table_name
group by column_name
where columb_name = 1 or column_name = 36; 我总是在where附近得到语法错误。我正在使用MS Server 2014。谢谢
在MySQL WHERE子句中使用派生值不起作用。有没有办法模拟这种行为?下面是一个由于WHERE count > 5行而失败的查询示例:
SELECT
title,
company_id,
count( id ) as count
FROM
table
WHERE
count > 5
GROUP BY
title,
company_id
使用Linq到实体,当我对使用书面Linq语句创建的LINQ对象执行where lamba表达式时,Where子句不起作用。
这不管用。查询将执行,但结果将不经筛选地返回。
var myQuery = (from l in db.MyTable
select l);
myQuery.Where(r => availableStatusList.Contains(r.Status));
var myObj = myQuery.ToList();
这确实管用。查询将执行,并正确地返回筛选结果。
var myQuery = (from l in d