|
|
|
|
Google Site
|
|||||||
| Forum | Registrera | Blogg | Manualsidor | Forum Regler | Länkar | Album | FAQ | Användare | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
![]() |
|
|
Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|||
|
omvandla fras
Jag konverterar en mysql databas från myIsam att innodb. Efter dumpningen alla databaser till en fil, jag försöker att göra ändringar:
sed s / ENGINE \u003d MyISAM / ENGINE \u003d InnoDB / dump_1> dump_1_inno Men när jag importera den ändrade dumpfilen till mysql server, jag har fel: ERROR 1214 (HY000) på rad 4093: Den använda tabell typ stöder inte Fulltext index Därför måste jag behålla de tabeller som har Fulltext index förbli MyIsam och bara ändra resten av innodb. Nedan följer en del av dump_1: \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d DROP TABLE om det finns "mod"; CREATE TABLE "mod" ( `id` int (10) NOT NULL auto_increment, "prgr` tinyint (1) NOT NULL default'0 'COMMENT' ger handling ", "COO` tinyint (1) NOT NULL default'0 'COMMENT' chment " "hinu` tinyint (1) NOT NULL default'0 'COMMENT' Himenu " Fulltext KEY `prgr" ( "Pagetitle", "beskrivning", "innehåll") PRIMARY KEY ( `id`), KEY "id" ( "id"), ) ENGINE \u003d MyISAM AUTO_INCREMENT \u003d 53 DEFAULT charset \u003d utf8 COMMENT \u003d 'Innehåller webbplatsen dokument träd. " . . . DROP TABLE om det finns "PRD" CREATE TABLE "PRD" ( "språk" varchar (3) kollationera utf8_unicode_ci NOT NULL default'', "beskrivning" text kollationera utf8_unicode_ci INTE NULL, "titel" varchar (255) kollationera utf8_unicode_ci NOT NULL, PRIMARY KEY ( "Prd", "skuID", "språk", "siteCode"), KEY `skuDescID" ( "skuDescID"), Fulltext KEY "beskrivning" ( "beskrivning"), Fulltext KEY "titel" ( "titel") ) ENGINE \u003d MyISAM AUTO_INCREMENT \u003d 239780 DEFAULT charset \u003d utf8 JÄMFÖRA \u003d utf8_unicode_ci; \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Så jag måste göra följande: 1. sed s / ENGINE \u003d MyISAM / ENGINE \u003d InnoDB / dump_1> dump_1_inno 2. Sök bland objekten kallas dump_1_inno för frasen "Fulltext KEY"; 3. en gång hittade fras, ändra senare "ENGINE \u003d InnoDB" tillbaka till "ENGINE \u003d MyISAM" (det är osäkert hur många linjer mellan frasen "Fulltext KEY" och nästa "ENGINE \u003d InnoDB", och det kanske en annan "Fulltext KEY "mellan dem) 4. Upprepa detta tills i slutet av filen och spara på en fil som heter "slutliga"; Kan någon hjälpa mig att hur kan jag göra detta? Senast redigerad av fredao; 04-24-2008 vid 01:48.. |
| Sponsrade länkar |
|
|
|
||||
|
Kod:
awk '
/CREATE TABLE/ { # Found create statement
change = 1 # Set engine change flag to TRUE
} #
/FULLTEXT KEY/ { # Found Fulltext key
change = 0 # Engine must be keep, so set
} # engine change flag to FALSE
change && /ENGINE=MyISAM/ { # Line contain ENGINE that must be changed
# (engine change flag is TRUE)
sub(/ENGINE=MyISAM/, "ENGINE=InnoDB") # Change engine value in record
} #
1 # Select all lines for printing
' dump_1 > finalJean-Pierre. |
|
|||
|
mycket tydlig. Tack så mycket.
|
| Sponsrade länkar |
|
|
![]() |
| Komihåglista |
| Thread Tools | Sök i denna tråd |
| Visningslägen | Betygsätt denna tråd |
|
|
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| matcha en fras | vanitham | Shell-programmering och Skript | 4 | 01-16-2008 02:18 |
| Dont Know How to frassökningar avdelning | barney34 | Shell-programmering och Skript | 1 | 12-12-2006 04:36 |
| Ta bort duplikatet fras | kesu2k | Shell-programmering och Skript | 6 | 10-17-2006 05:34 |
| här-doc konvertera 2 manus konvertera till enda script? | yongho | Shell-programmering och Skript | 2 | 07-07-2005 05:14 |
| Söka efter en viss fras på Unix-server | mmcaleer | UNIX for Dummies Frågor & Svar | 1 | 02-07-2005 04:18 |