webshop adatbázis

Sziasztok
Adott egy adatbázis nevezzük delta-nak (phpmyadmin felülettel)
Ezen adatbázisban találhatóak a termékek (product ID, súly, méret, szín stb....)
Feltelepítettem egy opencart webshopot és a feladat ebbe beleimportálni a termékeket!

1. törlöm a webshop SQL adatbázisából a product ID sort(a product táblán belül phpmyadmin felületen) és próbálom beimportálni a "delta" product is-kat
De a teljes adatbázist akarja másolni és "az adatbázis már létezik" hibaüzenetet kapom.
Hogyan tudok egy táblába csak sorokat beszúrni-másolni? (kb 3000termékről van szó így egyesével maceráns lenne)

2. mindezt meg kellene tennem a súly, a méret, áfa, összeg sorokkal is

3 A két tábla struktúrája nem azonos így mindenképp csak sorokat kellene lecserélnem.
Hogyan tudom ezt megtenni?

köszi a segítséget

Hozzászólások

Már néhány táblából álló adatbázis esetén sem triviális feladat egy ilyen fajta migráció. Szal nem biztos, hogy annak kéne nekiállni aki keveri a "sor" fogalamát az "oszlop" fogalmával. Ha valami oknál fogva csak egyetlen tábláról lenne szó akkor ez lehet segit Neked: http://dev.mysql.com/doc/refman/5.1/en/insert-select.html

Néhány soros PHP-programmal (vagy más nyelven is) meg tudod csinálni. Kiolvasod az egyik tábla tartalmát, soronként átadod a programnak és a másik táblába a megfelelő adatokat a megfelelő mezőkbe szintén soronként beírod.

Pl mert nekem közben olyat is kellett hogy háztetős Ő betűt kellett normálra konvertálni, plusz olyan sztring operátorokat futtatni amit hírből sem hallott az SQL. :) +értékvizsgálat

Pl. frissítsen minden olyan tételt amely nevéből egyedi függvénnyel generált EAN-13mas vonalkódot, amelyik egy oszlopa csak standard ASCII karaktereket tartalmaz. No hát innentől nekem natúr SQL édeskevés volt. Közben folyamatos értékvizsgálattal és outputtal könnyű dolgom volt.

Ajanlom figyelmedbe az "insert into tabla1 (select mezo1,mezo1 from tabla2)" sql-t igy tetszolegesen tudsz migralni. Termeszetesen ez a szabvany sql, nem tudom tudja-e mar a mysql, reg foglalkoztam mysql-el. De megneztem a manualt:


12.2.5.1. INSERT ... SELECT Syntax

INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
SELECT ...
[ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

With INSERT ... SELECT, you can quickly insert many rows into a table from one or many tables. For example:

INSERT INTO tbl_temp2 (fld_id)
SELECT tbl_temp1.fld_order_id
FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;

Hogyan tudom ezt megtenni?

Röviden: írsz rá egy programot.
Beolvasod az egyik adatbázis tartalmát, megcsócsálod, és beleírod a másikba.

Szerintem erre fölösleges programot írni.
Ismerni kell az új struktúrát és a jelenlegi struktúrát, írni kell egy select-et a jelenlegire és addig kell gyúrni, amíg a kimenete nem felel meg az új struktúrának. Akkor meg elé kell pöttyinteni egy insert into ujdb.ujtabla (fieldlist) dolgot, kb. ennyi.

Monnyuk érteni nem árt hozzá, annak pedig különösen nem javaslom ezt a munkát, aki a "törlöm a webshop SQL adatbázisából a product ID sort" rakja első pontnak. Egyrészt, mert nem sor hanem oszlop, másrészt meg PK-t törölni nem túl hasznos dolog szerintem.

Azért azt megnézem, hogy a vérprofi mennyi idő alatt ír olyan SQL parancsot, ami egy meglévő adatbázisból működő OpenCart webshop adatbázist csinál.

Nem lehetetlen, de jóval egyszerűbb és gyorsabb egy PHP-n megírt export script. Igen, export, mert még csak a cél adatbázisába sem kell írni, egyszerű CSV-t kell generálni és ezzel a kiegészítővel importálni:

http://www.opencart.com/index.php?route=extension/extension/info&extens…

Vagy el lehet tölteni heteket az adatbázis megértésével és az SQL parancs megírásával, én nem tenném.

Hasonlót csináltam már Magento-ra egy egyedi webshopból. Az export script ruby-ban készült, 7000 termékkel végeztem egy délelőtt alatt.

--
http://sandor.czettner.hu

"beleimportálni" - nincs ilyen szó. Az import elé nem kell tenni semmit. Im = bele. Hasonlóan "kiexportálni" sem létezik.