在SQL中插入新列

时间:2012-01-10 23:44:45

标签: mysql

我有一个由4个字段组成的数据库。我的应用程序将从该数据库中检索数据。我有一个主键(id)。我也希望根据id,提供将在新表中组织的其他数据。什么是更好的?创建一个新表并再次搜索它,或者由于id已经找到了该行的事实,创建一个将成为表的新元素。例如,我可以创建一个名为info的新元素,并使其成为类似于数组的东西,因为我想要11行,并且有2列信息。到目前为止我的SQL代码是这样的:

CREATE TABLE people (
   id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
   name VARCHAR( 100 ) NOT NULL ,
   sex BOOL NOT NULL DEFAULT '1',
   birthyear INT NOT NULL
)

我需要做出哪些改变?此表已创建。

3 个答案:

答案 0 :(得分:1)

如果现有表中的每一行现在还需要与11x2数据集关联,那么最好创建另一个表。

不要试图将22项数据填充到一个字段中,这是一个非常糟糕的主意。


但是,如果它始终相同(22项),则可以添加22个字段。这取决于数据将如何使用,搜索,加入等等。


究竟如何做到这一点取决于您的RDBMS和您的接口。创建一个全新的表并复制旧数据可能更容易。或者你所拥有的环境可能允许你添加列,并为你做腿部工作。

答案 1 :(得分:1)

我认为最好创建一个单独的新表来包含其他数据。这主要是因为原始表中每个ID有多个记录。

新表中的记录将有一个外键peopleID字段,将它们链接到人员表。

答案 2 :(得分:0)

我相信你暗示要嵌入表格。这不是MySQL的意思。相反,你应该做以下事情;在您的示例中创建一个类似的表。然后创建一个新表,该表将包含一个ID列(与people表中的列相同)和其他各列。然后,您可以执行内部联接以将两者连接在一起。此外,如果要为不同的行引用不同的表,您可能需要在列中添加“类型”。

或者,您可以使用像Mongo这样的“No-SQL”解决方案。这允许您动态添加内容。但是,在你掌握了关系数据库之前,我不建议这样做。