Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 当我尝试插入新值时,我先前插入的旧值会得到更新。这是我的密码_Python 3.x - Fatal编程技术网

Python 3.x 当我尝试插入新值时,我先前插入的旧值会得到更新。这是我的密码

Python 3.x 当我尝试插入新值时,我先前插入的旧值会得到更新。这是我的密码,python-3.x,Python 3.x,当我插入第一个值时,下一次当我给出不同的值时,旧值会被新值更新。我试图插入多个值并存储它们,而不更新它们。我该怎么做 import pymysql conn = pymysql.connect(host='127.0.0.1', user='root', passwd='nazaf123', db='nazafdatabase') cur = conn.cursor() cur.execute("DROP TABLE IF EXISTS EMPLOYEE") sql = """CREA

当我插入第一个值时,下一次当我给出不同的值时,旧值会被新值更新。我试图插入多个值并存储它们,而不更新它们。我该怎么做

import pymysql

conn = pymysql.connect(host='127.0.0.1', user='root', passwd='nazaf123', db='nazafdatabase')

cur = conn.cursor()


cur.execute("DROP TABLE IF EXISTS EMPLOYEE")

sql = """CREATE TABLE EMPLOYEE (
         FIRST_NAME CHAR(20) NOT NULL,
         LAST_NAME CHAR(20),
         AGE INT,
         SEX CHAR(2),
         SALARY FLOAT )"""

cur.execute(sql)

sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, SALARY)
         VALUES ('Nazaf', 'Anwar', 22, 'M', 10000)"""

try:

        cur.execute(sql)
        conn.commit()

except:

        conn.rollback()

cur.execute("""SELECT * FROM employee;""")

print(cur.fetchall())



cur.close()             
conn.close()

我在这里看不到任何实际更新的代码,除非您能够澄清您看到的内容以及您希望看到的内容。下面的内容在这里可能没有帮助

现在您正在删除一个表并重新创建它,这将从中删除所有以前的数据。您的Insert语句通常不会更改以前不存在的行,因此我将根据您的问题猜测,您可能有一个
更新员工集(新数据)
,这将更改以前的记录

要插入新数据,您需要执行另一个
insert
命令。如果您正在执行
Update
命令,它将更新所有记录,而不会插入新行。通常,
Update
后面是一个
where(条件语句)
,用于限制记录的修改方式

我现在没有python或SQL数据库,这应该可以。我添加到您提供的代码中,但删除了身份验证数据

import pymysql

conn = pymysql.connect({Connection Data here})

cur = conn.cursor()

sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, SALARY) VALUES ('Nazaf', 'Anwar', 22, 'M', 10000)"""

try:
    cur.execute(sql)
    conn.commit()
except:
    conn.rollback()
cur.execute("""SELECT * FROM employee;""")
#You should see the current data here.

sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, SALARY) VALUES ('John', 'Doe', 44, 'M', 300000)"""

cur.execute(sql)

cur.execute("""SELECT * FROM employee;""")
#You should see both Nazaf and John

sql = """UPDATE EMPLOYEE SET SALARY=30 WHERE FIRST_NAME='John'"""
cur.execute(sql)

cur.execute("""SELECT * FROM employee;""")
#You should see both Nazaf and John, however John's salary will be 30


sql = """UPDATE EMPLOYEE SET FIRST_NAME='BOB'"""
cur.execute(sql)

cur.execute("""SELECT * FROM employee;""")
#You should see the first names changed to bob.



print(cur.fetchall())

cur.close()
conn.close()

请解释一下我想问的情况。当我插入第一个值时,下一次当我给出不同的值时,旧值会被新值更新。我试图插入多个值并存储它们,而不更新它们。我该怎么做?这很有效,但我想问。当我插入第一个值时,下一次当我给出不同的值时,旧值会被新值更新。我试图插入多个值并存储它们,而不更新它们。我该怎么做?请提供帮助。如果您运行的代码与提供的代码完全相同,请尝试删除“执行删除”和“创建表”行。每次运行时,他们都会删除所有内容。您只需要创建一次表结构,通常是在首次设置应用程序时。我修改了我的答案以反映这一点。