2015-08-28 39 views
-1

我是新的初学者,对mysql的sql查询。我有表结构是这样的:在mysql中添加或改变外键到一个表中

---------------------------------  ---------------------------- 
| Table office     |  | Table_detail_complaint | 
---------------------------------  ---------------------------- 
|(PK) id_office    | ----|(PK) id_complaint   | 
|  name      | | |  complaint_2   | 
|  complaint_1    | | |  time_response_2  | 
|  time_response_complaint1 | | |  complaint_3   | 
|  address     | | |  time_response_3  | 
|(FK) id_complaint    |----- ---------------------------- 
--------------------------------- 

我有一个问题是这样的。

  1. 我已成功创建表格办公室。但是,我忘了将id_complaint作为外键。我怎么能够 ?
  2. 如何创建detail_complaint_table?
  3. 添加完fk后,我怎么能这样做,如果“表中的一行被删除也删除了table_detail_complaint上的一行”。使用级联还是什么?
  4. 如何在选择查询中使用JOIN或什么来查询complaint_1,complaint_2,complaint_3?
  5. 这是我的大问题。如果投诉持续到投诉_N,我有一个案例。我应该投诉_4,投诉_5吗?或者,有另一个想法?
+0

参考第2点:如果您创建第一个表,您正在创建第二个表面时遇到了什么问题? – Simimmo

+0

指的是第1点:你尝试过使用Google吗?这个问题在所有的SO和mysql文档中得到了回答... https://dev.mysql.com/doc/refman/5.1/en/alter-table.html – BK435

+0

提到了第4和第5点:我认为你更好回去看看基本的数据库设计...你完全忽视了那里的基数规则.https://en.wikipedia.org/wiki/First_normal_form – BK435

回答

1

您可以创建外键和级联儿童自动删除按照如下─

ALTER TABLE table_office 
ADD CONSTRAINT FK_table_office_id_complaint FOREIGN KEY (id_complaint) 
REFERENCES table_detail_complaint (id_complaint) 
ON DELETE CASCADE; 

对于你的问题股的其他部分的详细信息你想要什么样的信息存储和你将如何使用他们..