Mysql和python在考勤系统中的应用

2024-05-02 06:57:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用python和mysql开发一个考勤记录系统。我有一个列表,其中填充了'a'和'p'值。此列表等于当前的卷数。现在,每当我运行python代码时,应该将这个列表添加到以datestamp为列的表中。在

错误就是每次代码出错: 完成列表:-在

['P', 'P', 'P', 'A', 'P', 'P', 'P', 'P', 'A', 'P', 'P', 'P', 'P', 'P', 'P', 'P', 'P', 'P', 'P', 'P']

缺席卷数:

^{pr2}$

当前卷数:

[1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

写入数据库:

Traceback (most recent call last):
  File "take.py", line 47, in <module>
    cursor.execute("ALTER TABLE student ADD column datestamp Date;")`enter code here`

 File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
    self.errorhandler(self, exc, value)

  File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler

    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1060, "Duplicate column name 'datestamp'")

Tags: 代码inpy列表executelibpackagesusr
1条回答
网友
1楼 · 发布于 2024-05-02 06:57:09

表定义应该是相当静态的。您应该在设计时/部署时只添加一次datestamp列(在大多数情况下)。但是,ALTER TABLEtable语句在每次代码运行时都试图将该列添加到表中,这意味着每次最初添加该列后,它都会出错。相反,您应该执行insert/update语句来设置列的值,但是您并没有真正显示足够的代码来为我们提供额外的建议。在

您的问题表明您对关系数据库设计有一个基本的误解,最好退一步,确保您理解这些结构。在

相关问题 更多 >