Let me quote from my own book (SQL FOR SMARTLIES, 4.1.3). The ACM source is at the end.
Finally, an appeal to authority, with a quote from Dr. Codd: ".. Database users may cause the system to generate or delete a surrogate, but they have no control over its value, nor is its value ever displayed to them...".
This means that a surrogate ought to act like an index; created by the user, managed by the system and NEVER seen by a user. That means never used in code, DRI or anything else that a user writes.
Codd also wrote the following:
"There are three difficulties in employing user-controlled keys as permanent surrogates for entities.
(1) The actual values of user-controlled keys are determined by users and must, therefore, be subject to change by them (e.g. if two companies merge, the two employee databases might be combined with the result that some or all of the serial numbers might be changed.).(2) Two relations may have user-controlled keys defined on distinct domains (e.g. one uses social security numbers, while the other uses employee serial numbers) and yet the entities denoted are the same.
(3) It may be necessary to carry information about an entity either before it has been assigned a user-controlled key value or after it has ceased to have one (e.g. an applicant for a job and a retiree).These difficulties have the important consequence that an equi-join on common key values may not yield the same result as a join on common entities. A solution - proposed in part  and more fully in  - is to introduce entity domains which contain system-assigned surrogates. Database users may cause the system to generate or delete a surrogate, but they have no control over its value, nor is its value ever displayed to them....." (Codd, E.; "Extending the Database Relational Model to Capture More Meaning", ACM Transactions on Database Systems, 4(4), pp. 397-434; 1979).
Please post DDL and follow ANSI/ISO standards when asking for help.