পিএইচপি 5.3.13 / মাইএসকিউএল 5.5.21 এ নিম্নলিখিত কোডটি কাজ করে না:
if($check_custom_fields_form!=1){
$sql = "CREATE TABLE IF NOT EXISTS ". $table_custom_fields_form ." (
`form_name` longtext NOT NULL,
`field_id` bigint(20) NOT NULL,
FOREIGN KEY (`field_id`) REFERENCES $table_custom_fields (`ID`) ON DELETE CASCADE ON UPDATE CASCADE
) CHARACTER SET utf8 COLLATE utf8_general_ci";
dbDelta($sql);
}
if($check_subscribe_cat!=1){
$sql = "CREATE TABLE IF NOT EXISTS ". $table_subscribe_cat ." (
`subscribe_id` bigint(20) NOT NULL,
`cat_id` bigint(20) NOT NULL,
FOREIGN KEY (`subscribe_id`) REFERENCES ".$wpdb->prefix."tgt_subscription (`ID`) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (`cat_id`) REFERENCES ".$wpdb->prefix."terms (`term_id`) ON DELETE CASCADE ON UPDATE CASCADE
) CHARACTER SET utf8 COLLATE utf8_general_ci";
dbDelta($sql);
}
কোড প্রদানকারী মাইএসকিউএল 5.1.37 করার জন্য একটি ডাউনগ্রেড প্রস্তাব (কোন, ধন্যবাদ) অথবা নিম্নলিখিত আপডেট:
if($check_custom_fields_form!=1){
$sql = "CREATE TABLE IF NOT EXISTS ". $table_custom_fields_form ." (
`form_name` longtext NOT NULL,
`field_id` bigint(20) NOT NULL,
KEY(field_id)
) CHARACTER SET utf8 COLLATE utf8_general_ci";
dbDelta($sql);
}
if($check_subscribe_cat!=1){
$sql = "CREATE TABLE IF NOT EXISTS ". $table_subscribe_cat ." (
`subscribe_id` bigint(20) NOT NULL,
`cat_id` bigint(20) NOT NULL,
KEY(subscribe_id),
KEY(cat_id)
) CHARACTER SET utf8 COLLATE utf8_general_ci";
dbDelta($sql);
}
যা সমস্যাটিকে ঘিরে কাজ করার মতো একটি নোংরা উপায় বলে মনে হচ্ছে (কোনও ক্যাসকেডিং মোছা / আপডেট নেই)। অতএব:
- DbDelta বিদেশী কী সমর্থন না করা পর্যন্ত আমি কি সত্যিই এর সাথে বেঁচে থাকতে পারি ?
- এটা কি সত্য যে dbDelta কেবল 3 বছরের পুরানো মাইএসকিউএল সংস্করণে বিদেশী কী নিয়ে কাজ করে?