I changed my script to this:

/usr/local/mysql/bin/mysql  --user=$username --password=$password
--host=$server 

RESULT=`echo "select count(*) from hardware_assets where
ethernet_address='$ethernet_address'" | cetechnology'
if [ "$RESULT" = "0" ] ; then
    echo "INSERT INTO hardware_assets (ethernet_address) VALUES
($ethernet_address);"
else
    echo "UPDATE hardware_assets SET operating_system='10.3.3';"
fi

Where cetechnology is the database. All the variables are set.

When I run this, it starts the mysql client application,  with the mysql>
prompt. Nothing is inserted or updated in the database though.

This is the same problem I had when I tried to do it this way, but I am not
knowledgeable in shell scripting yet to know what I am doing wrong.




> From: gerald_clark <[EMAIL PROTECTED]>
> Date: Mon, 09 Feb 2004 11:11:24 -0600
> To: Mike Tuller <[EMAIL PROTECTED]>
> Cc: MySql List <[EMAIL PROTECTED]>
> Subject: Re: There has to be a way to do this
> 
> IF works on the selections not on the query.
> Select  IF(lastname='clark','Correct',''Incorrect'), firstname from
> namefile;
> 
> You need to do the checking in your script.
> For example in bash:
> RESULT=`echo "select count(*) from manefile where lastname='clark'" |
> mysql database`
> if [ "$RESULT" = "0" ] ; then
>   echo "insert into namefile .......
> else
>   echo "update namefile ......
> fi
> 
> 
> Mike Tuller wrote:
> 
>> I have posted this question a few times, and have not seen the answer that I
>> need.
>> 
>> I have a shell script, that gathers information from systems, and I want
>> that info to be entered into a database. I want it to check first to see if
>> the data is already entered, and if not, add it. If it has already been
>> entered, then update the record.
>> 
>> I would think that some type of if/else statement would work, but I can't
>> get the IF statement http://www.mysql.com/doc/en/IF_Statement.html to work
>> correctly in MySql.
>> 
>> Here is what I have:
>> 
>> "IF SELECT * FROM hardware_assets WHERE ethernet_address='$ethernet_address'
>> IS NULL\
>>    THEN INSERT into hardware_assets (ethernet_address) VALUES
>> ($ethernet_address)\
>> ELSE\
>>    UPDATE hardware_assets SET operating_system='10.3.3'\
>> END IF;"
>> 
>> I get back that I have an error in my SQL syntax. $ethernet_address is set,
>> so that is not my problem.
>> 
>> Does anyone know a way to go about this in SQL, or in a shell script? I
>> don't want to do it in Perl or PHP.
>> 
>> 
>> Thanks,
>> Mike
>> 
>> 
>>  
>> 
> 
> 
> 
> -- 
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:  
> http://lists.mysql.com/[EMAIL PROTECTED]
> 


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to