有没有办法发出mysql语句来创建表而不必分配列数?我正在使用MySQL C API来获取一些变量,然后将它们存储在表中。我遇到的问题是我必须在将变量插入表之前创建表(显然)。这些变量有时是结构(在一个表中有两个,三个或四个变量),所以我正在寻找一种不必说的方式:
CREATE TABLE Structures(ID varchar(10) primary key, name varchar(25))
但创建一个表格,可以插入任意数量的列?
如果我在这里有点模糊,请告诉我。
答案 0 :(得分:1)
ALTER TABLE
在运行时添加列。
但是,就个人而言,我不建议这样做。在开始实现之前,您应该知道数据库的样子。
答案 1 :(得分:1)
另一种编码方式是使用两个表和它们之间的一对多。
例如,您可能有这样的表 - pcode,
table experiment
experiment_id: long
experiment_header: varchar(50)
table experiemnt_data
experiemnt_data_id: long
experiment_id: long
key: varchar(20)
value: long
@id = insert into experiment (experiment_header) value("test run")
insert into experiment_data (experiment_id, key, value) value(@id, 'x', 1)
insert into experiment_data (experiment_id, key, value) value(@id, 'y', 20)
答案 2 :(得分:0)
AS @Mark和@attis说:
你做不到。但是,您可以使用ALTER在运行时添加列 表
但是,就个人而言,我不建议这样做。你应该知道什么 在开始实现之前,您的数据库看起来就像。
我认为最好的解决方案可能是: 创建两个表:
column
与(id
,name
)values
与(id
,column_id
,value
)然后您只需加入它们即可轻松获得结果,并且您可以轻松添加其他“列”
您还可以将所有内容存储在values
表中,但您的数据可能不一致,而且在我看来,查找数字要比比较字符串(表锁定,索引等等)更快
我想评论@Mark帖子,但不能(声誉太低)