mysql: rujukan kunci dan rujukan jadual tidak sepadan
P粉798010441
P粉798010441 2023-07-18 15:17:02
0
1
647

Mesej ralat:

SQLSTATE[42000]: Syntax error or access violation: 1239 Incorrect foreign key definition for 'fk.faq.product_id': Key reference and table reference don't match

Senarai Produk:

CREATE TABLE `product` (
    `id` BINARY(16) NOT NULL,
    `version_id` BINARY(16) NOT NULL,
    `created_at` DATETIME(3) NOT NULL,
    `updated_at` DATETIME(3) NULL,
    PRIMARY KEY (`id`,`version_id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Soalan Lazim:

CREATE TABLE `faq` (
    `id` BINARY(16) NOT NULL,
    `question` VARCHAR(255) NULL,
    `answer` VARCHAR(255) NULL,
    `product_id` BINARY(16) NOT NULL,
    `created_at` DATETIME(3) NOT NULL,
    `updated_at` DATETIME(3) NULL,
    PRIMARY KEY (`id`),
    KEY `fk.faq.product_id` (`product_id`),
    CONSTRAINT `fk.faq.product_id` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`,`version_id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Saya mencipta jadual Soalan Lazim untuk digabungkan dengan jadual produk, tetapi ia terus mendapat ralat dan saya tidak dapat mencari di mana kesilapan soalan dalam jadual. Terima kasih atas bantuan.

P粉798010441
P粉798010441

membalas semua(1)
P粉845862826

Alih keluar koma dalam perenggan Bahasa Inggeris ini - KUNCI UTAMA (id, version_id), alih keluar bukan batal dalam product_id BINARY(16), alih keluar version_id. RUJUKAN product (id,version_id)

https://dbfiddle.uk/rg25idw-

Dalam jadual yang dirujuk, mesti ada indeks di mana lajur yang dirujuk berada dalam susunan yang sama seperti lajur pertama.


https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan