This is NOT a script that can run under mysql. It is a bash script that calls mysql.
MYSQL="/usr/local/mysql/bin/mysql --user=$username --password=$password
--host=$server cetechnology"
RESULT=`echo "select count(*) from hardware_assets where ethernet_address='$ethernet_address'" | $MYSQL if [ "$RESULT" = "0" ] ; then echo "INSERT INTO hardware_assets (ethernet_address) VALUES ($ethernet_address);" |$MYSQL else echo "UPDATE hardware_assets SET operating_system='10.3.3';" | $MYSQL fi
Mike Tuller wrote:
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]