Hej,
Chcialem utworzyc relacje pomiedzy tabelami. Utworzylem tabele za pomoca polecen:

  1. <?php
  2. CREATE TABLE tabela_a  (
  3.                                 kolumna_a                  VARCHAR(20) PRIMARY KEY,
  4.                                 kolumna_b                  VARCHAR(10) UNIQUE NOT NULL,
  5.                                 kolumna_c                  VARCHAR(8) DEFAULT NULL,
  6.                                 kolumna_d                  FLOAT(10,2) DEFAULT NULL,
  7.                                 kolumna_e                  FLOAT(10,2) DEFAULT NULL,
  8.                                 kolumna_f                   FLOAT(10,2) DEFAULT NULL,
  9.                                 kolumna_g                  FLOAT(10,2) DEFAULT NULL
  10.                        ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
  11.  
  12. CREATE TABLE tabela_b (
  13.                                 kolumna_a                  VARCHAR(20) PRIMARY KEY,
  14.                                 kolumna_b                  VARCHAR(20) REFERENCES tabela_a(kolumna_a)
  15.                       ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
  16. ?>


  1. <?php
  2. mysql> insert into sms_indexes_content values('ala ma kota', 'sialala');
  3. Query OK, 1 row affected (0.04 sec)
  4.  
  5. mysql>
  6. ?>



I jak chce wpisac do tabela_b.kolumna_b wartosc ktorej nie ma w tabela_a.kolumna_a to MySQL zezwala na to. Gdzie robie blad?

------------------------------------------------[ ODPOWIEDZ ]------------------------------------------------

Dla osob, ktore maja ten sam problem, zapytania powinny wygladac nastepujaco:

  1. <?php
  2. CREATE TABLE tablea_a  (
  3.                                 kolumna_a                  VARCHAR(20) PRIMARY KEY,
  4.                                 kolumna_b                  VARCHAR(10) UNIQUE NOT NULL,
  5.                                 kolumna_c                  VARCHAR(8) DEFAULT NULL,
  6.                                 kolumna_d                  FLOAT(10,2) DEFAULT NULL,
  7.                                 kolumna_e                  FLOAT(10,2) DEFAULT NULL,
  8.                                 kolumna_f                   FLOAT(10,2) DEFAULT NULL,
  9.                                 kolumna_g                  FLOAT(10,2) DEFAULT NULL
  10.                        ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
  11.  
  12. CREATE TABLE tabela_b (
  13.                                 kolumna_a                  VARCHAR(20) PRIMARY KEY,
  14.                                 kolumna_b                  VARCHAR(20) NOT NULL,
  15.                                 FOREIGN KEY (kolumna_b) REFERENCES tabela_a(kolumna_a) ON DELETE CASCADE ON UPDATE CASCADE
  16.                       ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
  17. ?>


GOOD LUCK! smile.gif