Oracle SQL动态列

时间:2017-10-29 01:10:56

标签: sql oracle plsql schema

我想创建包含扩展列的表,具体取决于用户活动。 如果我有表Project,Worker和Worker_Projects,看起来像这样:

Worker_project: 工作者名称,项目名称列表作为列。 每次我添加项目我想改变表并添加列, 但问题是PL SQL不支持某些静态SQL,包括Alter。

我还有其他解决方案吗?

1 个答案:

答案 0 :(得分:2)

错误的做法。正确的表格列表,但方法错误。

create table WorkerProject (
    WorkerId int not null references Workers(WorkerId),
    ProjectId int not null references Projects(ProjectId)
);

这是基本的想法。您并没有真正给出表格的布局,但想法是添加新的,而不是新的。这称为联结表。

您也可以在表格中添加其他信息。例如,分配工作人员的日期,分配工作人员的日期等等。

我应该指出,Oracle是一个功能强大的数据库,提供其他解决方案,例如嵌套表或JSON编码。首先,您应该掌握如何以SQLish方式存储关系数据库的基础知识。如果您有特定需求,那么还有其他功能可以提供帮助。