如何在每次运行python程序时添加新列
我希望我的表的第一列是roll no,第二列是name。每当我运行python程序时,我想在表中添加一列date。在这个新的列中,我想填充从用户那里得到的列表。列表将包含值“p”、“a”、“p”、“p”等。如何操作? 我尝试先通过alter命令添加一列,然后插入数据,但没有任何效果如何在每次运行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
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
来检查是否平等。请改用=
运算符。