Liên hệ

[WP-DB] Tạo table có khóa ngoại khi active plugin

Việc tạo table cũng được sử dụng rất thường xuyên nếu bạn là một người muốn clean database và đặc biệt khi bạn sử dụng khóa ngoại nó sẽ hỗ trợ bạn clean data, khi bạn xóa record bên table relations.

VD:

Ở đây mình tạo 1 table mới và có relation với table posts, có tên là demo và có khóa ngoại lại post_id được liên kết với khóa chính của table posts.

 

function detect_plugin_activation( $plugin, $network_activation ) {
  global $wpdb;
  $charset_collate = $wpdb->get_charset_collate();
  $table_name = 'demo'; 
  $table_name2 = $wpdb->prefix . "posts";

  $wpdb->query(
    "CREATE TABLE IF NOT EXISTS $table_name (
        `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
        `post_id` bigint(20) unsigned NOT NULL,
        `label` varchar(191) NOT NULL,
        `value` longtext NOT NULL,
        `created` timestamp NOT NULL default CURRENT_TIMESTAMP,
        PRIMARY KEY (`id`),
        KEY `post_id` (`post_id`),
        CONSTRAINT `fk_post_id` FOREIGN KEY (`post_id`) REFERENCES $table_name2 (`ID`) ON DELETE CASCADE ON UPDATE CASCADE
      ) ENGINE=MyISAM DEFAULT CHARSET=$charset_collate;
      "
  );
  dbDelta();
}
add_action( 'activated_plugin', 'detect_plugin_activation', 10, 2 );

Chúc bạn thành công.


Disclaimer: Bài viết của chỉ nhằm mục đích cung cấp thông tin, kiến thức và bài viết này.

Follow us:
  • Facebook:
  • Website:

Bài viết được đọc nhiều