2012-11-22 34 views
7

Tôi có một bảng DB là myISAM, được sử dụng để tìm kiếm toàn văn. Tôi cũng có một cái bàn là InnoDB. Tôi có một cột trong bảng myISAM của tôi mà tôi muốn kết hợp với một cột trong bảng InnoDB của tôi. Điều đó có thể được thực hiện? Tôi không thể làm việc nó ra!Các khóa ngoài cho các bảng myISAM và InnoDB

Trả lời

11

http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html

định nghĩa phím nước ngoài là tùy thuộc vào các điều kiện sau đây:

Cả hai bảng phải được bảng InnoDB và họ không phải là bảng TẠM.

Vì vậy, tôi e rằng bạn sẽ không thể đạt được những gì bạn muốn.

+0

Đó là những gì tôi nghĩ. Cảm ơn vì đã trả lời! –

3

Tôi khuyên bạn nên thay đổi kiến ​​trúc DB sao cho bạn có một bộ bảng được thiết kế với tính toàn vẹn dữ liệu để viết (tất cả InnoDB) và bộ thứ hai được thiết kế để tìm kiếm - có thể trên một hộp khác. , nhưng có thể là một máy chủ tìm kiếm như Solr hoặc Sphinx, nó sẽ hoạt động tốt hơn một bảng MySQL đầy đủ. Sau đó bạn có thể điền DB tìm kiếm của bạn định kỳ từ DB viết của bạn.

+0

Điều này khá dễ thực hiện với một 'TRIGGER' nếu bạn không thể tìm được cách để thực hiện nó trong ORM của bạn. – tadman

Các vấn đề liên quan