标签: sql-update

Python MySQL更新语句不起作用

我尝试在 python 2.7 中执行一个简单的更新语句,但它根本不起作用。我希望有人能告诉我这个错误:

import MySQLdb
import datetime

db = MySQLdb.connect(host="localhost",    # your host, usually localhost
                     user="root",         # your username
                     passwd="",  # your password
                     db="******")        # name of the data base

cur = db.cursor()

cur.execute("SELECT * FROM data")

for row in cur.fetchall():
    id_row = str(row[0])
    date = str(row[1])
    new_date = date[:-2]
    new_date += "00"
    cur.execute("UPDATE data SET date={0} WHERE ID={1}".format(new_date, id_row))

db.close()
Run Code Online (Sandbox Code Playgroud)

该脚本应将日期作为 unix 时间戳从数据库中截取最后两个数字,将其替换为 00 并更新数据库中的行。替换数字的代码有效,但更新过程无效。它不显示任何错误消息并以代码 0 退出。

我不知道我在哪里犯了错误。有人可以帮忙吗?

多谢!

python mysql sql-update

0
推荐指数
1
解决办法
7532
查看次数

更新现有 SQLite 记录中的 BLOB 字段的语法?

使用 Python 处理现有记录中的字段UPDATE的语法是什么?我创建了一个 13x13 浮点数组,并希望使用该数组更新表中的特定记录(即使用子句)。BLOBSQLiteWHERE

正确的语法是什么UPDATE

该数组具有以下形式:

[ 4.65640926e+00  5.59250259e+00  5.28963852e+00  1.60680866e+00
  -3.39492680e-01 -4.76834650e-01 -4.76834650e-01 -2.29132240e-01
   1.49733067e+00  1.51563072e+00  1.49733067e+00  9.53471420e-01
  -1.40306473e+00]

 [ 5.28963852e+00  5.34537315e+00  5.05013466e+00  1.48362923e+00
  -3.69843300e-01 -4.76834650e-01 -4.76834650e-01 -2.29132240e-01
   7.60705290e-01  1.49733067e+00  9.53471420e-01  3.05504260e-01
  -1.40306473e+00]
Run Code Online (Sandbox Code Playgroud)

总共 13 行,每行 13 个子阵列。

谢谢你,比尔

python sqlite blob sql-update

0
推荐指数
1
解决办法
4825
查看次数

sqlite:从连接更新列

我已经尝试过下面的答案,但我找不到正确的方法

  1. SQLite 内连接 - 使用另一个表中的值进行更新
  2. 在 SQLite 上连接表时如何进行更新?
  3. 从具有相同用户名的另一个表更新表值

问题就在这里。我有一个带有两个表的 sqlite 数据库。在下面的代码中,我使用 pandas 插入一些虚拟值

import sqlite3
import pandas

conn = sqlite3.connect('foo.db')
curs = conn.cursor()

df1 = pandas.DataFrame([{'A' : 1, 'B' : 'a', 'C' : None}, {'A' : 1, 'B' : 'b', 'C' : None}, {'A' : 2, 'B' : 'c', 'C' : None}])
df1.to_sql('table1', conn, index = False)

df2 = pandas.DataFrame([{'A' : 1, 'D' : 'x'}, {'A' : 2, 'D' : 'y'}])
df2.to_sql('table2', conn, index = False)
Run Code Online (Sandbox Code Playgroud)

这会产生两个表

pandas.read_sql('select * …
Run Code Online (Sandbox Code Playgroud)

sqlite join sql-update pandas

0
推荐指数
1
解决办法
2962
查看次数

比较 postgres 中的两个列值

我有一个包含以下列和记录的表。我需要比较两列值(ColumnA 和 ColumnB),如果 ColumnB>ColumnA 则将第三列从“N”更新为“Y”

CREATE TABLE Test(ColumnA int,ColumnB int,Result Varchar(2))

INSERT INTO Test values(1,3,'N')
INSERT INTO Test values(2,1,'N')
INSERT INTO Test values(1,5,'N')
INSERT INTO Test values(8,7,'N')
Run Code Online (Sandbox Code Playgroud)

我需要更新第一行和第三行的 Result Column='Y' 因为 columnB>ColumnA

结果

ColumnA   ColumnB Result
1          3      Y
2          1      N
1          5      Y
8          7      N
Run Code Online (Sandbox Code Playgroud)

sql case sql-update postgresql-9.1

0
推荐指数
1
解决办法
3325
查看次数

通过 update 语句将 JSON 映射转换为 Postgres 中的数组

datasource我有一个名为 jsonb 列的postgresql 表data。它具有以下结构:

{  
   "key1":{"param1" : "value1", "param2" : "value2"},
   "key2":{"param2_1" : "value2_1", "param2_2" : "value2_2"},
   "key3":{"param3_1" : "value3_1", "param3_2" : "value3_2"}  
}
Run Code Online (Sandbox Code Playgroud)

有没有办法编写一些 UPDATE 脚本来将给定的 JSON 转换为以下内容:

[  
   {"key": "key1", "param1" : "value1", "param2" : "value2"},
   {"key": "key2", "param2_1" : "value2_1", "param2_2" : "value2_2"},
   {"key": "key3", "param3_1" : "value3_1", "param3_2" : "value3_2"}  
]
Run Code Online (Sandbox Code Playgroud)

sql arrays postgresql json sql-update

0
推荐指数
1
解决办法
215
查看次数

Postgresql使用触发器在插入值后更新列值

我想将值插入到 tableA 中,然后更新列 [amount_hkd]。我已经成功使用触发器,但性能非常慢,应用触发器后需要一个小时才能完成 8400 行的插入。我怎样才能提高性能?感谢您的帮助

要执行的语句:

INSERT INTO tableA (suppliers, invoice_dates, shipment_dates, amounts, currency, currency_conversion_rate)
SELECT l.supplier, l.invoice_date, l.shipment_date, l.amount, l.currency, o.currency_conversion_rate
FROM tableB l
LEFT JOIN tableC o
ON l.currency = o.currency_code
WHERE l.supplier = 'ABC'
Run Code Online (Sandbox Code Playgroud)

我创建的函数:

CREATE OR REPLACE FUNCTION cal() 
RETURNS TRIGGER AS $$ 
BEGIN 
UPDATE tableA 
SET amount_hkd = NEW.amounts * NEW.currency_conversion_rate;
RETURN NEW; 
END; 
$$ LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

我尝试的第一个触发器:

CREATE CONSTRAINT TRIGGER update_amount
AFTER INSERT ON tableA
DEFERRABLE
INITIALLY DEFERRED
FOR EACH ROW 
EXECUTE PROCEDURE …
Run Code Online (Sandbox Code Playgroud)

sql postgresql triggers sql-update sql-insert

0
推荐指数
1
解决办法
4894
查看次数

如何使用新主键扩展 SQL 表以及添加现有键的值?

我想加入或更新以下两个表,并添加df现有单词。因此,如果第一个表中不存在该单词endeavor,则应将其值相加,或者如果两个表中都存在df该单词,则应将其相加。hellodf

仅供参考,我正在使用 MariaDB 和 PySpark 对文档进行字数统计并计算 tf、df 和 tfidf 值。

表名:df

+--------+----+
|    word|  df|
+--------+----+
|vicinity|   5|
|   hallo|   2|
|  admire|   3|
| settled|   1|
+--------+----+
Run Code Online (Sandbox Code Playgroud)

表名:word_list

|      word| df|
+----------+---+
|     hallo|  1|
|   settled|  1|
|  endeavor|  1|
+----------+---+
Run Code Online (Sandbox Code Playgroud)

所以最后更新/组合的表应该如下所示:

|      word| df|
+----------+---+
|  vicinity|  5|
|     hallo|  3|
|    admire|  3|
|   settled|  2|
|  endeavor|  1|
+----------+---+
Run Code Online (Sandbox Code Playgroud)

到目前为止我尝试做的事情如下:

SELECT df.word, df.df + word_list.df FROM df …
Run Code Online (Sandbox Code Playgroud)

sql join mariadb sql-update

0
推荐指数
1
解决办法
35
查看次数

使用Delphi中的StrUtils删除SQL UPDATE语句中的最后一个逗号

假设我们有这个SQL语句:

UPDATE article SET saison='12E', mode='ECH', client='SAS', WHERE ID='3448fe81-1bec-e011-8546-001f3ccf8f20'
Run Code Online (Sandbox Code Playgroud)

此SQL语句由连接的字符串生成,如下所示:

// saison change
procedure TarticleEditForm.saisonComboChange(Sender: TObject);
begin
    SQLQuery := SQLQuery + 'saison=''' + saisonCombo.Text + ''',';
end;

// client change
procedure TarticleEditForm.clientComboChange(Sender: TObject);
begin
    SQLQuery := SQLQuery + 'client=''' + clientCombo.Text + ''',';
end;
.
.
.
Run Code Online (Sandbox Code Playgroud)

如您所见,在"WHERE"子句之前有一个逗号.如何删除最后一个逗号以获得​​正确的语句:

UPDATE article SET saison='12E', mode='ECH', client='SAS' WHERE ID='3448fe81-1bec-e011-8546-001f3ccf8f20'
Run Code Online (Sandbox Code Playgroud)

RMQ:逗号的数量不固定,可以是1,2,5 ......

谢谢.

解决方案是将",WHERE"替换为"WHERE"

 SQLQuery := StringReplace(SQLQuery , ', WHERE', 'WHERE', [rfReplaceAll]);
Run Code Online (Sandbox Code Playgroud)

我用这个跟踪HISTORY表中的每个变化.谢谢你们.

sql delphi string sql-update

-1
推荐指数
1
解决办法
1478
查看次数

为什么这个UPDATE查询不适用于php

嗨,我很难理解为什么这不是更新数据库.它重新加载指向的页面,HEADER但不更新任何字段.任何帮助都会被贪得无厌.

更新表格

 <?php
    include("../script/dbconnect.php");
    include("../script/addprodcat.php");

    $post = get_posts($_GET['id']);

    if ( isset($_POST['name'], $_POST['description'], $_POST['price'], $_POST['sale'], $_POST['picture'], $_POST['category']) ) {
    $errors = array();

        $name = trim($_POST['name']);
        $description = trim($_POST['description']);

        if ( empty($name) ) {
            $errors[] = 'You need to supply a title';
        }   else if ( strlen($name) > 255 ) {
        $errors[] = 'Title cannot be longer than 255 characters';
        }

        if ( empty($description) ) {
        $errors[] = 'You need to supply text';
        }

        if ( empty($price) ) {
        $errors[] …
Run Code Online (Sandbox Code Playgroud)

php mysql sql-update

-1
推荐指数
1
解决办法
487
查看次数

如果列已更新,则使用UPDATE()检查器的变量

是否可以在UPDATE()中使用一个变量来检查列是否更新?

这是我的示例代码:

DECLARE @ColumnCount int
DECLARE @ColumnCounter int
DECLARE @ColumnName nvarchar(MAX)

SET @ColumnCounter = 0

SELECT @ColumnCount =  COUNT(c.COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS c  WHERE c.TABLE_NAME = 'Province'
    WHILE @ColumnCount >= @ColumnCounter
    BEGIN
       SELECT @ColumnName = c.COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS c  WHERE c.TABLE_NAME = 'Province' AND c.ORDINAL_POSITION = @ColumnCounter
        IF (UPDATE(@ColumnName))
       SET @ColumnCounter = @ColumnCounter + 1
    END
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-update

-1
推荐指数
1
解决办法
872
查看次数