List:General Discussion« Previous MessageNext Message »
From:Gerald L. Clark Date:April 20 2007 6:45pm
Subject:Re: Trying to open a big sql script
View as plain text  
Joerg Bruehe wrote:
> Hi!
> 
> Duncan Hill wrote:
> 
>> On Thursday 19 April 2007 15:53:54 molemenacer wrote:
>>
>>> I am trying to change all the names of the database from mthosp to 
>>> another
>>> name, is this possible?
>>
>>
>> Assuming you mean tables, not database (as mysqldump doesn't store the 
>> database name in the dump file [or at least never has for me]):
>>
>> sed -e 's/mthosp/another_name/' < source.sql > dest.sql
> 
> 
> 1) This is risky, because it will also change (for example)
>    "govmthospital" to "govanother_nameital" which may be a bit more than
>    is intended.
> 
>    Sure, you can add conditions that prevent some such issues, but it
>    will get complicated.
>    The regular expressions the "sed" can handle are somewhat limited,
>    when you compare them to what Perl can do.
>    (Sorry, I won't give a Perl command - this is still too risky.)
> 
>>
>> mysql> rename table mthosp_1 to another_name_1, mthosp_2 to 
>> another_name_2
>> (Check the manual for syntax)
> 
> 
> 2) If you want multiple changes in a line, add the "g" modifier at the
>    command end:
>       sed -e 's/mthosp/another_name/g' < source.sql > dest.sql
> 
> 3) Most likely, you should first run a grep on the file, to check where
>    the string occurs and which effects your commands have.
> 
> 4) *If* you decide to use sed, then a cheap way to see just the changes
>    is this:
>       sed -n -e 's/mthosp/another_name/gp' < source.sql > verify.sql
> 
>    This will output *only* the changed lines, not the unchanged ones.
>    However, it will not show the context - if you want to get that as
>    well, then you will need a more complicated sed command or (easier,
>    IMHO) a pipe of grep (providing the context, see the -A and -B
>    options) and sed (above).
> 
> Regards,
> Joerg
> 
That reminds me of the story of the mailing list maintainer who decided
to replace 'and' with '&'.

He ended up sending mail to S&y S&erson.

-- 
Gerald L. Clark
Supplier Systems Corporation
Thread
Trying to open a big sql scriptmolemenacer19 Apr
  • Re: Trying to open a big sql scriptDuncan Hill19 Apr
    • Re: Trying to open a big sql scriptMogens Melander19 Apr
      • Re: Trying to open a big sql scriptMichael Dykman19 Apr
  • Re: Trying to open a big sql scriptDan Buettner19 Apr
    • Re: Trying to open a big sql scriptmolemenacer19 Apr
      • Re: Trying to open a big sql scriptDuncan Hill19 Apr
        • Re: Trying to open a big sql scriptJoerg Bruehe20 Apr
          • Re: Trying to open a big sql scriptGerald L. Clark20 Apr
      • Re: Trying to open a big sql scriptMogens Melander19 Apr
RE: Trying to open a big sql scriptAndreas Iwanowski20 Apr