That's because you gave a database entry in the table that already has a entry (primary key) of 60009.
Here's a tip...
Using his gemstone.sql file as an example I read that he is wanting to insert 8 vendors into the creatures_names table first. He tells us how he wants to point to them by the entry field in the table. So, after parsing the SQL I see that the ID's are as follows:
60063, 60064, 60065, 60066,60067,60068,60069,60070
Well, we need to make sure those ID's are available. Primary keys MUST be unique. To check this I'll run the following script against my "world" database:
Code:
select entry from creature_names where entry in (60063, 60064, 60065, 60066,60067,60068,60069,60070);
When I run it, I get (Null) as a response. If you get any information other then that your database is already using one or more of those IDs. You have a couple of options.
The first is to run a delete statement on creature_names which would look like:
Code:
delete from creature_names where entry in (60063, 60064, 60065, 60066,60067,60068,60069,60070);
This might give you grief as I have no idea if the database has cascade deletes in it or not. If it does not, you'll likely have orphaned data or erroneous results when you run the gemstone.sql after the delete.
To fix that, I might do something like this:
Code:
delete from creature_names where entry in (60063, 60064, 60065, 60066,60067,60068,60069,60070);
delete from creature_proto where entry in (60063, 60064, 60065, 60066,60067,60068,60069,60070);
delete from vendors where entry in (60063, 60064, 60065, 60066,60067,60068,60069,60070);
After that, I would try to rerun his gemstone.sql.
Another option is to change his sql yourself. To do this is easy but time consuming for novices. Basically run the following SQL:
Code:
select max(entry + 1) as entry from creature_names
This is going to give you the next available entry id you can safely use. Let's say for fun that it returned 8650001. So, now you go to the SQL he wrote and start with search and replace. His code says this:
Code:
INSERT INTO `creature_names` VALUES ('60063', 'Misc', 'Red Gemstone', '', '0', '0', '0', '3', '0', null, '20126', '0', '0', '0', '1', '1', '0', null);
You need to replace the first value (the ID of 60063) with that max + 1 number (the 8650001) everywhere in the SQL by doing a global search and replace. Then do the next insert line with 8650002, then the next with 8650003, etc.
The first line should now read:
Code:
INSERT INTO `creature_names` VALUES ('8650001', 'Misc', 'Red Gemstone', '', '0', '0', '0', '3', '0', null, '20126', '0', '0', '0', '1', '1', '0', null);
Hope that helps.