Új hozzászólás Aktív témák
-
amdni
aktív tag
Próbáltam MariaDB-is a dolgot, de itt sem írja ki a show create table diak a foreign key sort.
MariaDB [adatbazis1]> create table osztaly(
-> id int(4) primary key auto_increment,
-> osztalynev char(1)
-> );
Query OK, 0 rows affected (0.019 sec)MariaDB [adatbazis1]>
MariaDB [adatbazis1]>
MariaDB [adatbazis1]> create table diak(
-> id int(4) primary key auto_increment,
-> osztaly_id int(4),
-> foreign key (osztaly_id) references osztaly(id)
-> );
Query OK, 0 rows affected (0.007 sec)MariaDB [adatbazis1]> show create table diak;
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| diak | CREATE TABLE `diak` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`osztaly_id` int(4) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `osztaly_id` (`osztaly_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.017 sec) -
bpx
őstag
Mert pl. lehet, hogy tiltva van. Ennek by default 1-et kellene visszadni global és session szinten is:
SELECT @@GLOBAL.foreign_key_checks, @@SESSION.foreign_key_checks;Ha viszont 0, akkor nem történik meg a foreign keyek ellenőrzése, és büntetlenül lehet azt megsértő adatokat bevinni.
-
Doink
aktív tag
MariaDB [test2]> CREATE TABLE osztaly (
-> id INT NOT NULL AUTO_INCREMENT,
-> PRIMARY KEY (id)
-> );
Query OK, 0 rows affected (0.03 sec)
MariaDB [test2]> CREATE TABLE diak (
-> id INT NOT NULL AUTO_INCREMENT,
-> osztaly_id INT,
-> PRIMARY KEY (id),
-> FOREIGN KEY (osztaly_id) REFERENCES osztaly(id)
-> );
Query OK, 0 rows affected (0.03 sec)
MariaDB [test2]> SHOW CREATE TABLE diak;
+-------+--------------+
| Table | Create Table |
+-------+--------------+
| diak | CREATE TABLE `diak` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`osztaly_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `osztaly_id` (`osztaly_id`),
CONSTRAINT `diak_ibfk_1` FOREIGN KEY (`osztaly_id`) REFERENCES `osztaly` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+--------------+
1 row in set (0.00 sec)
MariaDB [test2]> INSERT INTO diak (osztaly_id) VALUES(9999);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails
(`test2`.`diak`, CONSTRAINT `diak_ibfk_1` FOREIGN KEY (`osztaly_id`) REFERENCES `osztaly` (`id`))
MariaDB [test2]> INSERT INTO diak (osztaly_id) VALUES(9999);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`test2`.`diak`, CONSTRAINT `diak_ibfk_1` FOREIGN KEY (`osztaly_id`) REFERENCES `osztaly` (`id`))
MariaDB [test2]> INSERT INTO osztaly (id) VALUES(1);
Query OK, 1 row affected (0.01 sec)
MariaDB [test2]> INSERT INTO diak (osztaly_id) VALUES(1);
Query OK, 1 row affected (0.01 sec) -
Doink
aktív tag
Hogy kikényszerítsd a valid értéket a mezőre.
Például ilyet ne csinálhass ha nincs 99999 ID-jű osztály:
insert into osztaly values(3, 'B');
insert into tanulok values(1, 'Béla', 99999);Egyébként ez egy one-to-many mert (1osztály)-(sok gyerek) de egy gyerek csak 1 osztályba jár.
Ha egy gyerek több osztályba is jár akkor lesz many-to-many.
Új hozzászólás Aktív témák
- Amit látnod kell 80’ – 90’ évek, egész estét betöltő mozi filmjei.
- Okos Otthon / Smart Home
- Mikrotik routerek
- Kertészet, mezőgazdaság topik
- Alkoholista nevelde
- Filmvilág
- A fociról könnyedén, egy baráti társaságban
- Tőzsde és gazdaság
- Autós topik
- RETRO beárazás (mobil, PC, konzol)
- További aktív témák...
- Lenovo ThinkPad T14S Gen1 Ryzen5 4650U Refurbished - Garancia
- ThinkPad T14s Gen 2 i5-1135G7 16GB 512GB FHD 1 év garancia
- 203 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070
- BESZÁMÍTÁS! Asus ROG Strix B450F R5 5600 32GB DDR4 512GB SSD RTX 2070 Super 8GB Zalman S2 TG TT 650W
- IKEA Format lámpák eladóak (Egyben kedvezménnyel vihető!)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

