Jadual Kandungan
Pastikan kedua -dua jadual menggunakan enjin innoDB
Proses asas untuk membuat kunci asing
Perhatikan jenis medan dan masalah indeks
Rumah pangkalan data navicat Bagaimana untuk mewujudkan hubungan utama asing di Navicat?

Bagaimana untuk mewujudkan hubungan utama asing di Navicat?

Aug 08, 2025 am 02:39 AM

Langkah -langkah utama untuk mewujudkan kunci asing di Navicat termasuk: 1. Pastikan kedua -dua jadual menggunakan enjin InnoDB; 2. Buka antara muka reka bentuk subtable, beralih ke tab "Kekunci Asing" dan tambahkan rekod baru; 3. Pilih medan kunci asing dan jadual utama dan medan utama utama; 4. Tetapkan tingkah laku semasa kemas kini dan penghapusan (seperti menyekat, cascade, set null); 5. Pastikan jenis medan konsisten dan medan kunci asing mempunyai indeks. Jika definisi medan konflik, anda perlu menyesuaikan terlebih dahulu. Seluruh proses dilakukan melalui antara muka grafik tanpa menulis SQL.

Mewujudkan hubungan utama asing di Navicat tidak rumit. Selagi anda memahami logik reka bentuk struktur meja, anda boleh menyelesaikannya dalam beberapa langkah. Kuncinya ialah mesti ada medan yang sepadan antara kedua -dua jadual, dan enjin menyokong kunci asing (seperti innoDB).

Berikut adalah beberapa langkah utama dari perspektif operasi biasa untuk membantu anda menetapkan kekangan utama asing dengan lancar.


Pastikan kedua -dua jadual menggunakan enjin innoDB

Enjin Myisam MySQL tidak menyokong kunci asing, jadi pertama -tama anda perlu mengesahkan bahawa kedua -dua jadual yang anda beroperasi adalah jenis InnoDB:

  • Buka navicat, klik kanan di atas meja → "meja reka bentuk"
  • Lihat atau ubah suai enjin penyimpanan ke innoDB dalam tab Pilihan

Jika tidak, anda boleh mengubahnya secara langsung di sini dan ia secara automatik akan menukarnya apabila menyimpan.


Proses asas untuk membuat kunci asing

Ini adalah bahagian paling teras, dan sangat intuitif untuk beroperasi di antara muka grafik Navicat:

  1. Buka subtable (iaitu, jadual yang akan dikaitkan pada masa akan datang), dan klik "Jadual Reka Bentuk"
  2. Beralih ke tab Kekunci Asing
  3. Klik tanda "" untuk menambah rekod baru
  4. Pilih medan yang anda mahu menjadi kunci asing (biasanya medan seperti user_id yang sepadan dengan kunci utama jadual lain)
  5. Pilih jadual sasaran (jadual utama) dan medan yang sepadan (biasanya kunci utama) dalam "Jadual Rujukan dan Bidang"
  6. Tetapkan tingkah laku semasa kemas kini dan penghapusan (seperti cascading, tetapan untuk kosong, dan lain -lain)

Tingkah laku biasa termasuk:

  • Hadkan : Mengehadkan operasi, jika data yang berkaitan tidak dibenarkan dipadam/dikemas kini
  • Cascade : Operasi Cascading, perubahan subtable serentak apabila jadual utama berubah
  • Tetapkan NULL : Setelah jadual utama dipadam atau dikemas kini, medan subtable yang sepadan ditetapkan ke batal (dengan syarat medan dibenarkan kosong)

Perhatikan jenis medan dan masalah indeks

Kadang -kadang anda akan mendapati bahawa nama medan adalah sama, tetapi hubungan utama asing tidak dapat diwujudkan. Alasannya mungkin dalam kedua -dua mata ini:

  • Jenis medan mestilah sama: contohnya, jadual utama INT UNSIGNED , dan subtable juga mesti menjadi jenis ini
  • Bidang utama asing mesti mempunyai indeks: Navicat biasanya akan membuat indeks secara automatik untuk anda, tetapi ia juga boleh menyebabkan kegagalan jika terdapat konflik indeks antara medan nama yang sama.

Sekiranya anda telah menambah indeks secara manual sebelum ini, atau definisi medan tidak betul -betul konsisten, ingatlah untuk menyesuaikannya terlebih dahulu dan kemudian cuba menambah kunci asing.


Pada dasarnya itu sahaja. Seluruh proses tidak memerlukan penulisan SQL, tetapi disiapkan dengan mengklik tetikus dalam antara muka grafik. Selagi anda memberi perhatian kepada tiga titik enjin, jenis medan dan indeks, anda secara amnya boleh menubuhkan hubungan utama asing dengan lancar.

Atas ialah kandungan terperinci Bagaimana untuk mewujudkan hubungan utama asing di Navicat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Rimworld Odyssey Cara Ikan
1 bulan yang lalu By Jack chen
Bolehkah saya mempunyai dua akaun Alipay?
1 bulan yang lalu By 下次还敢
Panduan pemula ' s ke Rimworld: Odyssey
1 bulan yang lalu By Jack chen
Skop pembolehubah PHP dijelaskan
3 minggu yang lalu By 百草

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1506
276
Bagaimana untuk menduplikasi struktur jadual sahaja? Bagaimana untuk menduplikasi struktur jadual sahaja? Jul 14, 2025 am 12:01 AM

Untuk menyalin struktur jadual tanpa menyalin data, gunakan arahan SQL atau alat grafik. ① Gunakan createTablenew_tabeleKeoriginal_table dalam mysql; struktur dan indeks salin; ② Anda juga boleh menggunakan createTablenew_tableasSelect*fromoriginal_tablewhere1 = 0; Tetapi kunci utama dan indeks mungkin hilang; ③ PostgreSQL menyokong createTablenew_table (likeoriginal_tableincludingall); ④ sqlserver boleh menggunakan selectinto untuk menggabungkan di mana1

Apakah perbezaan antara Navicat Premium dan edisi lain? Apakah perbezaan antara Navicat Premium dan edisi lain? Jul 21, 2025 am 01:00 AM

Navicatpremiumisthemostfeature-richedition, supportingmultipledatabasesesandofferingallavailableTools.1.itsupportsmysql, Mariadb, PostgreSQL, SQLite, Oracle, MongoDB, danSQLServer, IdealForusersWorkingAcrossvariousDatabases.2.itincludesadvancedFeatureSLikeveSU

Bagaimana untuk mencetak struktur skema dari Navicat? Bagaimana untuk mencetak struktur skema dari Navicat? Jul 27, 2025 am 12:56 AM

Untuk mencetak struktur skema pangkalan data dari Navicat, anda boleh mencapainya dalam tiga cara: menggunakan "gambarajah eksport" untuk menghasilkan gambarajah struktur visual; 1. Buka sambungan pangkalan data dan masukkan pangkalan data yang sepadan; 2. Klik "Tools"> "ER Chart"> "New ER Carta"; 3. Pilih jadual dan tambahkannya, dan sistem secara automatik akan menghasilkan carta ER; 4. Klik butang "Eksport" untuk menyimpannya sebagai format gambar atau PDF untuk mencetak. Jika anda perlu mencetak Struktur Jadual Versi Teks: 1. Klik kanan nama jadual dan pilih "Jadual Reka Bentuk"; 2. Tukar ke tab "SQL" untuk mendapatkan pernyataan penciptaan meja dan salin dan simpannya; atau klik kanan "Dump SQL File" selepas pemilihan batch, nyahtandakan data dan hanya mengekalkan struktur dan mengeksportnya. Pengguna lanjutan boleh menggunakan fungsi laporan untuk menghasilkan dokumen struktur: 1. Klik "

Mengapa navicat membeku semasa memuatkan data? Mengapa navicat membeku semasa memuatkan data? Jul 24, 2025 am 12:09 AM

Navicatfreezesduringdataloadingmainlyduetolargedatasets, connectionissues, usangsoftware, orinsufficientresources.1.largedatasetsoverloadnavicatwhenrenderingmillionsofrows, solimitresultswithfiltersorpagination.2.ConnectionBotheneCksksksksksorpagination.2.ConnectionBotheneCksksksksksorpagination.2.ConnectionBotheneCksksksksorpagin

Apakah tamat masa pertanyaan lalai di Navicat? Apakah tamat masa pertanyaan lalai di Navicat? Jul 16, 2025 am 12:41 AM

Navicat tidak mempunyai nilai tamat pertanyaan lalai bersatu, bergantung kepada jenis pangkalan data yang disambungkan dan tetapan masa tamatnya sendiri. 1.MYSQL biasanya menggunakan Wait_Timeout (lalai 28800 saat). 2.PostgreSQL tidak mempunyai masa tamat klien secara lalai dan perlu dikonfigurasi secara manual. 3. SQLServer menggunakan tetapan masa tamat sesi. 4. Tetapan tamat masa boleh diselaraskan dengan mencari medan "QueryTimeout" dalam sifat sambungan atau pilihan lanjutan. 5. Jika tidak ditentukan, ia bergantung kepada tingkah laku pemacu sistem atau pangkalan data. Sekiranya anda menghadapi masalah tamat, anda harus menyemak konfigurasi pelayan Navicat dan Konfigurasi Server Pangkalan Data pada masa yang sama, dan mengoptimumkan kecekapan pertanyaan atau sokongan perkhidmatan hosting hosting.

Bolehkah saya menjalankan skrip tersuai mengikut jadual menggunakan Navicat? Bolehkah saya menjalankan skrip tersuai mengikut jadual menggunakan Navicat? Jul 16, 2025 am 12:10 AM

Ya, YouCanrunacustomsqlscriptonascheduleusingNavicatByutilizingitsBuilt-InschedulerFeature.1.openyourdatabaseconnectionandg OTOTOOLS> CreateScheduler.2.namethetaskandundertheActionstab, selectRunsqlfileorrunsqlstatement, thenspecifyYourscript.3.inthes

Bagaimana memantau status replikasi? Bagaimana memantau status replikasi? Jul 18, 2025 am 12:52 AM

Untuk memantau status replikasi PostgreSQL, anda perlu menguasai penggunaan metrik dan alat teras. Pertama, anda boleh melakukan pilih*frompg_stat_replication di perpustakaan utama; Lihat status sambungan perpustakaan sandaran, dan medan utama termasuk keadaan (harus streaming), client_addr dan sync_state; Kedua, hitung kelewatan replikasi dengan membandingkan perbezaan antara perpustakaan utama pg_current_wal_lsn () dan perpustakaan sandaran pg_last_wal_replay_lsn (), atau secara langsung pertanyaan sent_delay dan replay_delay dengan pg_stat_replication; Akhirnya, anda boleh membuat

Bagaimana untuk memberikan keistimewaan khusus kepada pengguna menggunakan Navicat? Bagaimana untuk memberikan keistimewaan khusus kepada pengguna menggunakan Navicat? Jul 23, 2025 am 12:18 AM

Di Navicat, keizinan khusus boleh diberikan kepada pengguna melalui antara muka grafik. Pertama, buat atau pilih pengguna dan tetapkan kebenaran akses hos; Kedua, pilih Database atau Kebenaran Tahap Jadual di halaman Pengeditan Pengguna, dan semak keizinan operasi tertentu seperti Pilih dan Masukkan; Anda juga boleh melaksanakan arahan geran melalui tetingkap pertanyaan SQL untuk mencapai kebenaran yang lebih fleksibel; Akhirnya perhatikan untuk menyelamatkan perubahan dan keizinan yang menyegarkan untuk memastikan bahawa kebenaran itu baik -baik saja dan tidak ada risiko keselamatan.

See all articles