Sziasztok! hogy lehet azt megcsinálni, hogy amikor létrehozok egy új táblát, akkor ne kelljen külön csinálnom egy szkriptet, ami megadja a legelső értéket, hanem legyen rögtön egy alapértelmezett sor?
Nos, ha nagyon akarod, akkor meg tudod csinálni create table as select használatával, persze akkor nem igazán tudod megadni az adattípusokat, vagy legalábbis nagyon trükkösnek kell lenni. Példa:
mysql> create table proba as select 'Kovacs' as vezeteknev, 'Istvan' as keresztnev, 1978 as szuletes; Query OK, 1 row affected (0.01 sec) Records: 1 Duplicates: 0 Warnings: 0
mysql> select * from proba; +------------+------------+----------+ | vezeteknev | keresztnev | szuletes | +------------+------------+----------+ | Kovacs | Istvan | 1978 | +------------+------------+----------+ 1 row in set (0.00 sec)
Kétlem, hogy te ezt szeretnéd, bár ha egy létező adathalmazon megfogalmazható lekérdezés alapján szeretnéd létrehozni az új táblát, akkor szerencséd van, mert akkor átveszi a lekérdezés eredményében előálló típusokat az új táblához a MySQL.
Fent csak tippel a megadott adatok alapján. Ha a fenti példát kiterjesztve szeretnéd, hogy ne csak tippeljen, akkor a CAST függvények és operátorok közül tudsz válogatni, amik segítenek a megfelelő típusra kényszeríteni egy értéket, hogy tényleg olyan oszlopot vegyen fel a MySQL. De ezutóbbi tényleg nagyon barkács megoldás, semmiféle komoly alkalmazásban nincs helye szerintem.
Tarolt eljarasok
create table as select
create table as selecthasználatával, persze akkor nem igazán tudod megadni az adattípusokat, vagy legalábbis nagyon trükkösnek kell lenni. Példa:Query OK, 1 row affected (0.01 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> select * from proba;
+------------+------------+----------+
| vezeteknev | keresztnev | szuletes |
+------------+------------+----------+
| Kovacs | Istvan | 1978 |
+------------+------------+----------+
1 row in set (0.00 sec)
mysql> explain proba;
+------------+-----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-----------+------+-----+---------+-------+
| vezeteknev | char(6) | | | | |
| keresztnev | char(6) | | | | |
| szuletes | bigint(4) | | | 0 | |
+------------+-----------+------+-----+---------+-------+
3 rows in set (0.00 sec)
Kétlem, hogy te ezt szeretnéd, bár ha egy létező adathalmazon megfogalmazható lekérdezés alapján szeretnéd létrehozni az új táblát, akkor szerencséd van, mert akkor átveszi a lekérdezés eredményében előálló típusokat az új táblához a MySQL.
Fent csak tippel a megadott adatok alapján. Ha a fenti példát kiterjesztve szeretnéd, hogy ne csak tippeljen, akkor a CAST függvények és operátorok közül tudsz válogatni, amik segítenek a megfelelő típusra kényszeríteni egy értéket, hogy tényleg olyan oszlopot vegyen fel a MySQL. De ezutóbbi tényleg nagyon barkács megoldás, semmiféle komoly alkalmazásban nincs helye szerintem.
Az jó ha csinálsz előre egy .sql fájlt?
Végül amikor kell a tábla akkor csak betolod pl parancssorból a fájlt.
re
A második válasz tetszett a legjobban, de a többiből is tanultam ;)