Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
Google Site



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.

Closed Thread
English Japanese Spanish French German Portuguese Italian Powered by Powered by Google
 
Thread Tools Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 04-24-2008
Registered User
 

Join Date: Dec 2006
Inlägg: 59
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
  #2 (permalänk)  
Old 04-24-2008
aigles's Avatar
aigles aigles is offline Forum Advisor  
Registered User
 

Join Date: april 2004
Ort: Bordeaux, Frankrike
Inlägg: 1.434
Prova följande awk program:

Kod:
awk '
/CREATE TABLE/ { change = 1 }
/FULLTEXT KEY/ { change = 0 }
change && /ENGINE=MyISAM/ { sub(/ENGINE=MyISAM/, "ENGINE=InnoDB") }
1
' dump_1 > final

Indatafil:
Kod:
DROP TABLE IF EXISTS `mod`;
CREATE TABLE `mod` (
`id` int(10) NOT NULL auto_increment,
`prgr` tinyint(1) NOT NULL default '0' COMMENT 'ger document',
`coo` tinyint(1) NOT NULL default '0' COMMENT 'chment',
`hinu` tinyint(1) NOT NULL default '0' COMMENT 'Himenu',
FULLTEXT KEY `prgr` (`pagetitle`,`description`,`content`)
PRIMARY KEY (`id`),
KEY `id` (`id`),
) ENGINE=MyISAM AUTO_INCREMENT=53 DEFAULT CHARSET=utf8 COMMENT='Contains the site document tree.';


DROP TABLE IF EXISTS `prd`;
CREATE TABLE `prd` (

`language` varchar(3) collate utf8_unicode_ci NOT NULL default '',
`description` text collate utf8_unicode_ci NOT NULL,
`title` varchar(255) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`prD`,`skuID`,`language`,`siteCode`),
KEY `skuDescID` (`skuDescID`),
KEY `description` (`description`),
KEY `title` (`title`)
) ENGINE=MyISAM AUTO_INCREMENT=239780 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Effekt:
Kod:
DROP TABLE IF EXISTS `mod`;
CREATE TABLE `mod` (
`id` int(10) NOT NULL auto_increment,
`prgr` tinyint(1) NOT NULL default '0' COMMENT 'ger document',
`coo` tinyint(1) NOT NULL default '0' COMMENT 'chment',
`hinu` tinyint(1) NOT NULL default '0' COMMENT 'Himenu',
FULLTEXT KEY `prgr` (`pagetitle`,`description`,`content`)
PRIMARY KEY (`id`),
KEY `id` (`id`),
) ENGINE=MyISAM AUTO_INCREMENT=53 DEFAULT CHARSET=utf8 COMMENT='Contains the site document tree.';


DROP TABLE IF EXISTS `prd`;
CREATE TABLE `prd` (

`language` varchar(3) collate utf8_unicode_ci NOT NULL default '',
`description` text collate utf8_unicode_ci NOT NULL,
`title` varchar(255) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`prD`,`skuID`,`language`,`siteCode`),
KEY `skuDescID` (`skuDescID`),
KEY `description` (`description`),
KEY `title` (`title`)
) ENGINE=InnoDB AUTO_INCREMENT=239780 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Jean-Pierre.

Senast redigerad av aigles; 04-24-2008 vid 02:27.. Orsak: lägga produktionen omdirigering till fil slutlig
  #3 (permalänk)  
Old 04-24-2008
Registered User
 

Join Date: Dec 2006
Inlägg: 59
Kan ni ge lite förklaringar? tack.
  #4 (permalänk)  
Old 04-24-2008
aigles's Avatar
aigles aigles is offline Forum Advisor  
Registered User
 

Join Date: april 2004
Ort: Bordeaux, Frankrike
Inlägg: 1.434

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 > final

Jean-Pierre.
  #5 (permalänk)  
Old 04-24-2008
Registered User
 

Join Date: Dec 2006
Inlägg: 59
mycket tydlig. Tack så mycket.
Sponsrade länkar
Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är Av


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



Alla tider är GMT -4. Klockan är nu 11:06.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2010. All Rights Reserved.Ad Management by RedTyger

Content Relevant webbadresser från vBSEO 3.2.0