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