first of all, you don't actually need to declare foreign keys in order to write a query that joins two tables -- you can join them anyway
foreign keys are intended to ensure relational integrity, i.e. you would not be able to delete a book if a bookcopy row for it still exists, and you would not be able to add a bookcopy row if the parent book does not exist
as far as your oracle syntax is concerned, i have no idea -- your ALTER syntax looks okay, except you're using the same constraint name as the foreign key name, oracle might not like that
the other thing that might cause an error is if you're adding a foreign key to a table that already has rows in it, and some of those rows would violate the constraint
rudy
http://r937.com/