On 12/20/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > Nathan Gross <[EMAIL PROTECTED]> wrote on 12/20/2005 05:34:58 PM: > > > Hi; > > [Mysql 4x] In a table where I get data from another program, I have > > many records (about 1000) that have illegal chars in a [unique] > > indexed varchar field. I would like to clean the illegal characters > > out and leave the rest of the data intact. > > 1. Is there a utility to do this? > > 1b) Or an UPDATE command? > > > > Problem is that I do not even know which characters are illegal. > > For the future, I can have my Java program check before the inserts. > > > > 2. What are the illegal characters? > > > > Thank you. > > -nat > > > > If you don't know what is illegal, how do you know you have illegal > characters? Are you getting some kind of error message or warning? You have > to give us the same information you have in order for us to make an informed > decision. I get two lists from different sources which I merge into the database via a Java program. Since these two lists themselves sometimes get their data from the same source, my program first does a SELECT on the varchar field (unique index) [to ensure that this data is not yet in the db] before inserting the data. (Actually I am using j2ee ejbFinds.) Occasionaly, say 5% of the time, I get a duplicate (create) exception from the db, even though the db just told my program that the data was not there! With my debugger I verified that for these fields, if you try to find/select this data, mysql will return a null resultset, but yet if you try to enter this data it will throw the create exception. Now these [defective] fields always have (1 or more) suspicious characters like {,[,',", or commas colons, what not. I do not know which of these is/are the culprits. So, my little problem is twofold. 1) How to trap this data in the first place in my Java program. Obviously I need to know what to look for! 2) I do not want to leave my database in this state, so I want to clean it. 2b)I don't mind adding a boolean field to the table to be used as a flag for all records that have suspect data, before deciding exactly how to clean it. Although I think I can just replace these characters with a space, in [almost] all cases.
One more important point. This field, although unique, is NOT the pk. I can use the PK to correctly select and display the contents of all fields in the record. Thank you much. -nat -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]