如何在每次运行python程序时添加新列

2024-04-20 11:39:43 发布

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

我希望我的桌子有第一列作为滚动编号,第二列作为滚动编号姓名。什么时候我运行python程序,希望在其中添加一列日期表1和在新列中,我想填充从用户列表将包含值“P”、“A”、“P”、“P”等等怎么了去做这件事? 我试着先通过alter命令添加一列,然后插入数据,但没有任何效果。你知道吗

choice1=raw_input("\nEnter 'y' or 'n' to add new column:\n")
if choice1 is 'y':
    cursor.execute(" ALTER TABLE table1 ADD datecolumn varchar(20)")
    db.commit()
    for i in xrange(0,10):
        if students[i] is 'A':
            cursor.execute("insert into table1(datetime) values ('A')")
            db.commit()
        elif students[i] is 'P':
            cursor.execute("insert  into table1(datetime) values ('P')")
            db.commit()

Tags: executedbdatetimeifiscursor编号commit
1条回答
网友
1楼 · 发布于 2024-04-20 11:39:43

不要在运行时更改数据库设计,但要以更改数据而不是结构的方式进行设计。你知道吗

你可以有两张桌子。一个叫做Student的,有rollnoname列的,如果它是唯一的,可能在rollno上PK。你知道吗

然后有另一个名为Thing(任何合适的名称,但我不知道您的数据是关于什么的)的表,其中有三列when(datetime)、value(任何合适的名称)(CHAR(1))和student(与rollno的类型相同)。你知道吗

whenvalue上定义PK,以确保每个学生每个日期只有一个值。定义从Thing.studentStudent.rollno的FK。现在,数据库负责保持数据(大部分)的一致性。你知道吗

根据您对不同列的选择、插入和更新的需要定义索引。你知道吗

然后查询连接两个表以获得所需的结果,例如

select s.name, t.value
from Student s
left join Thing t on t.student = s.rollno
where t.when == 'whenever'

(我不太清楚mysql的方言,所以可能需要更多的引用。请随意编辑。)

相关问题 更多 >