snowcatMedlem sedan feb. 2007220 inlägg hejsan, jag behöver lite hjälp, det funkar inte som jag vill.
Jag har MySQL och där har jag två tabeller som jag vill slå ihop till en.
Kolumnnamnen är lika i bägge tabellerna det är bara innehållet som skiljer.
Jag använder mig av navicat. Jag satt och sökte och letade efter dokumentation om hur man gör, och jag hittade det också och gjorde som det stod men får bara fel ändå.
"1406 - Data too long for column" är felmeddelandet jag får.
Bägge tabellerna har samma kolumnnanm samt samma "typer"
Jag kan exportera från den ena till en fil, det går bra men jag kan inte importera den till den andra tabellen för då får jag felmeddelande. Jag har exporterar i alla möjliga olika filformat men det funkar i alla fall inte. Jag har försökt att kopiera från den ena till den andra, det går inte heller. Är det inte så här man skall göra?
Hur gör man - jag blir knasig snart!!
SPiNMedlem sedan mars 20007 896 inlägg Det låter märkligt att du får det felet om alla fält har samma egenskaper.
Du kan, istället för att importera och exportera, använda SQL rakt av för att skapa en ny tabell utifrån två andra;
CREATE TABLE ny_tabell
SELECT * FROM
(SELECT * FROM tabell_1
UNION ALL
SELECT * FROM tabell_2
);
Eller om du inte vill ha en ny tabell, utan importera till den ena tabellen från den andra;
INSERT INTO tabell_1 (SELECT * FROM tabell_2);
snowcatMedlem sedan feb. 2007220 inlägg jag är helt rudis på sånt här. Hur/var skriver jag det någonstans? i navicat?
om jag gör så, får jag samma id på första tabellen som jag har i nuvarande då? för de är kopplade till lite olika saker som bilder och sånt.
Det är 100 rader bara som skall in till den första databasen. kanske att jag skall skriva in dem en och en fast det tar ju lite tid.
tvåan ser bra ut, men var skriver jag det?
SPiNMedlem sedan mars 20007 896 inlägg Jag har aldrig använt navicat, men någonstans i programmet måste du kunna skriva in SQL-kod?
Om du har beroenden så måste du se till att inga primära nycklar krockar vid ihopslagningen, eftersom att primärnycklar ska vara unika. Det kan bli mycket mer-jobb för dig om du slår ihop tabellerna och du förlorar dina beroenden p.g.a. duplikerad data/förlorad data.
Det är bäst om du skapar två tillfälliga tabeller som du kan testa på så länge, du kan ju kopiera över innehållet från dina live-tabeller till två temporära tabeller som du först testar ihopslagningen på så att du ser att det fungerar.
Skapa temporära tabeller med identisk data:
CREATE TABLE tmp_tabell_1
AS
SELECT field1, field2, field3
FROM tabell_1
Nu har du en ny tabell som heter 'tmp_tabell_1' och som innehåller sama data som 'tabell_1'. Upprepa för din andra tabell, och försök att slå ihop de temporära tabellerna först. Får du korrupt data/förlorad data är ju inte det hela världen, eftersom att ursprungstabellerna är intakta.
Nu krävs det förstås att du hittar var i navicat du kan köra SQL-kommandon. ;)
snowcatMedlem sedan feb. 2007220 inlägg ok jättetack :-)
jo jag kopierade redan igår så jag testar/leker med två som det inte gör något att jag förstör. Jag skall leta och se om jag hittar något ställe man kan skriva SQL-kod.
tack så länge - jag kommer säkert tillbaka ;)
snowcatMedlem sedan feb. 2007220 inlägg jag hittade nått som hette query som det gick att skriva i
testade men fick då felet 1062 - duplicate entry '1' for key 1
Har väl troligen att göra med att det finns ID 1 i bägge tabellerna?
Hur kommer man runt det? skall jag ändra id-numret på mina 100 rader i tabellen som skall kopieras?
SPiNMedlem sedan mars 20007 896 inlägg Ja, det blir du nog tvungen till tyvärr. Om du specifierar vilka fält som ska kopieras och utesluter id-fältet, så lägger MySQL till nya id-nummer för de nya fälten i tabellen. Dock så måste du ju uppdatera dina fk's också i de tabeller som beror på id-numret som ändras. (fk = foreign key)
snowcatMedlem sedan feb. 2007220 inlägg men om jag gör så här:
första tabellen dit jag vill kopiera allt har ID från 1-228
kan jag då i tabellen nr 2 (den som skall kopieras) ändra ID 1 till 229 och sen nästa till 230 osv.... och på så sätt gå igenom de 100 raderna (det kan jag göra det är ju bara ett engångsjobb) - skulle detta funka?
snowcatMedlem sedan feb. 2007220 inlägg ... och nu har jag lyckats göra bort mig totalt, ena tabellen är borta - har visst lyckats ta bort den!!! kan man få tillbaka den måntro?