Shell Scripting


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shell Scripting
# 8  
Old 11-17-2011
Quote:
Originally Posted by vivek d r
i have been working on this since a week... continuing on from my previous thread.. whose link is below

HTML Code:
https://www.unix.com/shell-programming-scripting/171076-shell-scripting.html#post302573569
i have reached till here... (below is current code) its throwing up some error... dont know what it is..

Code:
#!/bin/sh
#
# Here we are considering testdump1.sql as old mysql dump of database
# and testdump2.sql as latest mysql dump file to be changed to hence
# forth there will be two functions namely to insert missing 
# columns from new mysql dump to database, and also deleting new 
# columns from database which are not present in new mysql dump.
#
#
# Test purpose testdump1.sql and testdump2.sql has one table each with 
# few columns names missing.
#
#
value1=0
value2=0

while read line1
do
       value1=`expr $value1 + 1`
#       the abovel ine gives the number of line in the file
 
done < testdump1.sql
while read line2
do
        value2=`expr $value2 + 1`
#       the abovel ine gives the number of line in the file 
  
done < testdump2.sql
echo "value1 : $value1"
echo "value2 : $value2"
counter1=0
counter2=0
len1=0
len2=0
#
#function for inserting missed columns
#
insert_column()
{
        mysql -udunkin -pdunkin123 ditdb << EOF
        ALTER TABLE $1 ADD $2;
        QUIT
        EOF
        if [ $? -eq 0 ]
        then
                  echo "$2 added to $1 Successfully "
                  else
                  echo "Script  failed please verify the sqls"
                  exit 1
        fi

}
#
#function for deleting the extra column
#
delete_column()
{
 mysql -udunkin -pdunkin123 ditdb << EOF
        ALTER TABLE $1 drop $2;
        QUIT
        EOF
        if [ $? -eq 0 ]
        then
                   echo "$2 dropped from $1 Successfully "
                   else
                   echo "Script  failed please verify the sqls"
                   exit 1
        fi

}

#
# this below piece of code is used to find columns not present in new database
# and hence will involve method for deleting that column.
#
echo "========printing lines not present in new mysql dump(delete)========="
echo ""
while read line1
do
 
# echo "$line1"
 counter2=0
 len1=${#line1}
 while read line2
 do
  len2=${#line2}
  char1=${line1:$len1-1:$len1}
  char2=${line2:$len2-1:$len2}
  if [ "$char1" = "," ]
  then
   line11=${line1:0:$len1-1}
  else
   line11=$line1
  fi
  
  if [ "$char2" = "," ]
                then
   line22=${line2:0:$len2-1}
  else
                        line22=$line2
  fi
  if [ "$line11" != "$line22" ]
  then
   counter2=`expr $counter2 + 1`
  fi
  
  if [ $counter2 -eq $value2 ]
  then
   echo "this line not present : $line11"
#   here calling the delete method   
   table_name=$( awk -F\` '/CREATE TABLE/{print $2}' testdump2.sql )
#   column_name=$
#   delete_column $table_name $column_name
   
  fi
    
 done < testdump2.sql
done < testdump1.sql

#
# this below piece of code is used to find columns not present in old database
# and hence will involve method for inserting that column.
#
echo ""
echo "========printing lines not present in old mysql dump(insert)========="
echo ""
while read line2
do
#       echo "$line2"
        counter1=0
 len2=${#line2}
        while read line1
        do
  
  len1=${#line1}
 
  char1=${line1:$len1-1:$len1}
                char2=${line2:$len2-1:$len2}
                if [ "$char1" = "," ]
                then
                        line11=${line1:0:$len1-1}
                else
                        line11=$line1
                fi
                if [ "$char2" = "," ]
                then
                        line22=${line2:0:$len2-1}
                else
                        line22=$line2
                fi
                if [ "$line11" != "$line22" ]
                then
                        counter1=`expr $counter1 + 1`
                fi
                if [ $counter1 -eq $value1 ]
                then
                        echo "this line not present : $line22"
#   here calling the insert method
   table_name=$( awk -F\` '/CREATE TABLE/{print $2}' testdump2.sql )
   insert_column $table_name $line22
                fi
        done < testdump1.sql
done < testdump2.sql

Code:
............
insert_column()
{
        mysql -udunkin -pdunkin123 ditdb << EOF
        ALTER TABLE $1 ADD $2;
        QUIT
        EOF
.............

Code:
.............
delete_column()
{
 mysql -udunkin -pdunkin123 ditdb << EOF
        ALTER TABLE $1 drop $2;
        QUIT
        EOF
.............

there must not be spaces in front of the "EOF"
must be..

Code:
............
insert_column()
{
        mysql -udunkin -pdunkin123 ditdb << EOF
        ALTER TABLE $1 ADD $2;
        QUIT
EOF

Code:
.............
delete_column()
{
 mysql -udunkin -pdunkin123 ditdb << EOF
        ALTER TABLE $1 drop $2;
        QUIT
EOF
.............

regards
ygemici
This User Gave Thanks to ygemici For This Post:
# 9  
Old 11-17-2011
Just because you get no answer anymore in the old thread, please refrain from opening a new thread with the same issue as this is the same as bumping up and is not allowed by the rules of this forum here.
# 10  
Old 11-17-2011
Quote:
Originally Posted by vivek d r
its throwing up some error... dont know what it is..
It's always a good idea to give the actual error message.
# 11  
Old 11-18-2011
Oh okay sorry... will do that from now on... :-/

---------- Post updated at 11:04 AM ---------- Previous update was at 10:48 AM ----------

Output of above file
what is the syntax to invoke mysql statements in shell script dynamically by storing the acted tables and columns in a variable?

Quote:
value1 : 17
value2 : 19
========printing lines not present in new mysql dump(delete)=========
this line not present : `reserved2` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL
========printing lines not present in old mysql dump(insert)=========
this line not present : `reserved6` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL
ERROR 1064 (42000) at line 2: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Script failed please verify the sqls
---------- Post updated at 11:28 AM ---------- Previous update was at 11:04 AM ----------

i have made correction as
Code:
ALTER TABLE $1 ADD COLUMN $2;

but its still showing the same error. i tried
Code:
ALTER TABLE '$1' ADD COLUMN '$2';

Code:
ALTER TABLE `$1` ADD COLUMN `$2`;

Code:
ALTER TABLE "$1" ADD COLUMN "$2";

but none worked :-(
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Shell script to read lines in a text file and filter user data Shell Programming and Scripting

sxsaaas (3 Replies)
Discussion started by: VikrantD
3 Replies

2. Shell Programming and Scripting

help me in Shell Scripting

Hi there please have a look at the code..i want to create Using a named pipe. Run a find in the background starting in the working directory While this is happening wait for input from the user to ask him which file to find. If the user does not enter any data in 10 seconds ask the user again.... (1 Reply)
Discussion started by: kattak1511
1 Replies

3. Shell Programming and Scripting

Shell scripting

Hi, if in a network there are lots of PCs connected with either windows or linux as operating system.Then what will be the shell script for the same and also if the PC has linux in it then we have to find if it is occupied or unoccupied. If the PC has windows in it then we have to find if it is... (6 Replies)
Discussion started by: akansha singh
6 Replies

4. UNIX for Dummies Questions & Answers

Shell Scripting

Hey I have a data in the file named as outputFile.txt. The data is in the format 123456,12345678912345,400,09/09/09,INACTIVE. I want this output without commas ie 12345612345678912345400090909INACTIVE. Please tell me what to do and clear explain all the terms, as I am new to it. (6 Replies)
Discussion started by: sampandey31
6 Replies

5. Web Development

Perl scripting or shell scripting?

i am going to study any one of the scripting languages mentioned above(shell 0r perl scripting) . Which is having more scope for a fresher? (1 Reply)
Discussion started by: Anna Hussie
1 Replies

6. What is on Your Mind?

Shell Scripting vs Perl scripting

Gents, I have been working in a Solaris/Unix environment for about 9 months. I took some linux classses online before getting the job. But, I am not very good at scripting. I want to learn how to script. Do you think that I should start with Shell scripting or Perl? I wanted to continue with... (2 Replies)
Discussion started by: Pouchie1
2 Replies

7. Android

Android Scripting Environment: Shell Scripting and Android

I just upgraded to Android 2.2 from 2.1. The GPS issue that was troublesome in 2.1 seems to have been fixed. Some of web browsing seems faster, but it could just be my connection is better today ;) Flash works in some browsers but not very good and it is too slow for Flash apps designed for... (0 Replies)
Discussion started by: Neo
0 Replies

8. What is on Your Mind?

Shell scripting vs Perl scripting

Hi all, I would like to start developping some good scripting skills. Do you think it would be best to start with shell scripting or Perl? I already got a fundation, really basics, in perl. but I am wondering what would be best to be good at first. Can you please help me determine which one to... (14 Replies)
Discussion started by: Pouchie1
14 Replies

9. Shell Programming and Scripting

Call Shell scripting from Perl Scripting.

Hi How to call a shell scripting through a Perl scripting? Actually I need some value from Shell scripting and passes in the Perl scripting. So how can i do this? (2 Replies)
Discussion started by: anupdas
2 Replies

10. Shell Programming and Scripting

difference between AIX shell scripting and Unix shell scripting.

please give the difference between AIX shell scripting and Unix shell scripting. (2 Replies)
Discussion started by: haroonec
2 Replies
Login or Register to Ask a Question