Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.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程序时添加新列_Python_Mysql_Mysql Python - Fatal编程技术网

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

如何在每次运行python程序时添加新列,python,mysql,mysql-python,Python,Mysql,Mysql Python,我希望我的表的第一列是roll no,第二列是name。每当我运行python程序时,我想在表中添加一列date。在这个新的列中,我想填充从用户那里得到的列表。列表将包含值“p”、“a”、“p”、“p”等。如何操作? 我尝试先通过alter命令添加一列,然后插入数据,但没有任何效果 choice1=raw_input("\nEnter 'y' or 'n' to add new column:\n") if choice1 is 'y': cursor.execute(" ALTER T

我希望我的表的第一列是roll no,第二列是name。每当我运行python程序时,我想在表中添加一列date。在这个新的列中,我想填充从用户那里得到的列表。列表将包含值“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()

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

你可以有两张桌子。一个名为
Student
,列为
rollno
name
,如果它是唯一的,可能会在
rollno
上PK

然后有另一个名为
Thing
(任何合适的名称,但我不知道您的数据是关于什么的)表,其中有三列
(日期时间),
值(任何合适的名称)(CHAR(1))和
学生(与
rollno
类型相同)

定义
when
value
时的PK,以确保每个学生每个日期只有一个值。定义从
Thing.student
student.rollno
的FK。现在,数据库负责保持数据(大部分)的一致性

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

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

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

(我不确定mysql方言,因此可能需要更多的引用。请随意编辑。)

在运行时更改数据库设计可能不是您真正想要的。你到底想做什么?我不知道这是否是你问题的一部分,但你不应该用
is
来检查是否平等。请改用
=
运算符。