Can I legally refuse entry to a landlord? For DB2 LUW (which is the DBMS I use the most) the name is unique within a table (same name can be reused between tables). And not everyone is going to agree. Having consistent naming conventions across your data model means that developers will need to spend less time looking up the names of tables, views, and columns. damon2012. Want to improve this question? Table names must follow the rules for SQL Server identifiers, and be less than 128 characters. Table names must follow the rules for SQL Server identifiers, and be less than 128 characters. Remember, right or wrong, foreign key relationships are not always enforced in all projects. However, consistency is really the key … Specifically, I'll describe naming conventions for database objects, why they are so important, and what you should and shouldn't be doing.Warning! There is little meaning or value in the name. That's for style. Much more intuitive, IMHO, to say "This table's column x references that table." The naming conventions depend on a lot of things, the DBMS being one. Return control after command ends in Ubuntu, Safe Navigation Operator (?.) [ @pktab_schema = ] 'pktab_schema'Is the name of the schema with a primary key. Is it undermining or rude to email the boss to ask him to get his act together? Changing Foreign key names to standard naming convention across the DB Forum – Learn more on SQLServerCentral ... We can think of adding column names into foreign key … pktab_schemais sysname, with a default of NULL. A FOREIGN KEY is a field (or collection of fields) in one table that refers to the PRIMARY KEY in another table. Welcome to the website of Narayana Vyas Kondreddi. We use cookies to ensure that we give you the best experience on our website. In SQL Server, this contains the owner name. This tip from Oracle PL/SQL expert Dan Clamage will help you understand the best way to name a foreign key column. In Microsoft SQL Server you can declare constraints without providing names. Why doesn't NASA release all the aerospace technology into public domain? The name of the constraint that is violated is often truncated in the error message and what table it concerns is often obvious. In these situations, the system assigns a name on your behalf, usually part of the key looking like a GUID. If you don't find yourself referencing fk's that often after they are created, one option is to keep it simple and let MySQL do the naming for you (as Daniel Vassallo mentions in the beginning of his answer).. Most often I don’t have a foreign key constraint based on an -alternate key. "This table references that table on column x." How I would approach Hanks problem is that I would find the unique set of foreign keys currently existing regardless of name, and create a script using the naming convention I presented above. The code in Listing 8 executes the same delete statements described in Listing 6. 2 foreign keys that both point to the same table and column. Additionally, the name the system uses when the foreign key is assigned is not really usable, so I have decided to change the FKeyName. [closed], How digital identity protects your software, Podcast 297: All Time Highs: Talking crypto with Li Ouyang, Table contains multiple names for same company, Tablestructure for fast inserts/deletes with foreign keys. Is it actually better to change all my reference constraints to FK_CurrentTableName_CurrentColumnName? FK_FKTableName_FKColumnName_PrimaryTableName_PrimaryColumnName, which I believe this will make it unique enough and allow for a cleaner printout on a model to boot. While you won't be able to uniquely "guess" the constraint names with this method - you can easily find the foreign key constraint name by running a query: It might even call for full references on both sides (of course, the users table may have more than one candidate key, though it is fairly uncommon for an FK to point to a candidate/natural rather than the surrogate): And therein lies the problem. Using these two conventions I don’t have to name any columns. It can be defined at the column or table level. In Microsoft SQL Server you can declare constraints without providing names. Understanding foreign key column naming conventions Want to know how to name the foreign key column in your table? SQL Server Standards Version 1.5 Shane Lively & Michael Sarsany Page 1 of 24 I. In these situations, the system assigns a name on your behalf, usually part of the key looking like a GUID. Foreign Key Constraints A Foreign Key is a field in the database table that is the primary key in another table. Foreign key in Accounts table: FK_CustomerID. [ @pktab_name = ] 'pktab_name'Is the name of the table with a primary key. This works ok but then I discovered that when I want two foreign keys in one table that use the same table then this convention does not work because it … Then you could create a script that that would use SP_RENAME to rename all the existing foreign keys using your new naming convention. SQL naming conventions for tables, and all the associated objects such as indexes, constraints, keys and triggers, are important for teamwork. Naming convention for Foreign Key. Administrators can select or change a primary key in a relational database, such as SQL Server, as needed. The information presented here Poorly-named tables and other objects make it difficult to maintain databases. Again, if that were the case, you could obtain that information from one of the INFORMATION_SCHEMA views. The table containing the foreign key is called the child table, and the table containing the candidate key is called the referenced or parent table. In Microsoft SQL Server you can declare constraints without providing names. SQL FOREIGN KEY on CREATE TABLE The following SQL creates a FOREIGN KEY on … Primary key in Customers table: PK_CustomerID. PK2_ColumnName I've searched and read contradictory opinions. When a primary key in a table changes, the set of associated foreign keys changes as a result. SQL naming conventions for tables, and all the associated objects such as indexes, constraints, keys and triggers, are important for teamwork. In this post I'll be going into the latter. How does numpy generate samples from a beta distribution? Foreign key referencing table with composite primary key when I only need 1 column association. Naming Conventions. Foreign key names should start with FK_ and the name should reference either the table it links to or the primary key column in that table. Featured White Paper(s) Encryption & Key Management for Microsoft SQL Server 2008 Written by Townsend Security, Simplify encryption and key management on … (read more), SQL Server, Azure SQL Database, Amazon RDS & AWS, Oracle and IBM Help. Foreign key constraint. There is little meaning or value in the name. site design / logo © 2020 Stack Exchange Inc; user contributions licensed under cc by-sa. For me, these names have proven useful. I like the Ruby on Rails conventions: primary key in any table is auto-increment integer column called id; foreign keys are named as foreign table name plus _id. It only takes a minute to sign up. A foreign key is a column or a group of columns in a table that reference the primary key of another table.. Log Shipping: two secondary DBs on the same instance - is this possible? Does the destination port change during TCP three-way handshake? Each Foreign Key Name should have a “FK_” prefix. So, naming the columns ID and having this name as the foreign key field name as well will tend to make query building tools work better. In this case I name the constraint FK_[ChildTableName}_[ParentTableName]. SQL Server 2016 (13.x) and later increases the limit for the number of other tables and columns that can reference columns in a single table (incoming references), from 253 to 10,000. In many languages, naming conventions (of identifiers) is not really relevant, because the way the language designs namespacing, there is relatively little risk for conflict. and integer comparisons, How to request help on a project without throwing my co-worker "under the bus". Naming Conventions – Primay and Foreign Keys Hank writes in with a scenario revolving around system assigned key names. At a glance, you can see that the tables are joined correctly. The 2-char alpha suffix meanings are: PK: Primary Key; AK: Alternate Key; FK: Foreign Key; IX: … It might even call for full references on both sides (of course, the users table may have more than one candidate key, though it is fairly uncommon for an FK to point to a candidate/natural rather than the surrogate): A FOREIGN KEY is a field (or collection of fields) in one table that refers to the PRIMARY KEY in another table. In this specific case it should be easy enough to infer, but that won't always be true. The […] The purpose of the foreign key is to ensure referential integrity of the data. Example: country_id is a foreign key that corresponds to a record from the countries table Encryption & Key Management for Microsoft SQL Server 2008. I would create a script dropping all the old constraints, and then create the new set of constraints. I therefor use the following convention: I don't know SQL Server well enough to give you any advise there, but hopefully you will get some ideas on different considerations. If you continue to use this site we will assume that you are happy with it. Foreign key columns. So I looked at the SQL-92 standard and it did not come off the text on how to resolve the name so I have decided to use the following. Foreign key is a field in the database table that is a primary key in other tables. Or should I keep it the same unless there is a conflict and then do FK_CurrentTableName_CurrentColumnName_ReferencedTableName or FK_CurrentTableName_ReferencedTableName_CurrentColumnName? Yes I inherited them.. I have found the following naming conventions to be useful. I agree with Aaron that whatever you decide, stick with it through the project. [ @pktab_catalog = ] 'pktab_catalog'Is the name of the catalog with a pri… Is there any reason not to use foreign keys in MySQL? table_server is sysname, with no default. Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. "This table references that table on column x." changed – top level statements and functions (C# 9), Upgrading the node image of an Azure Kubernetes Service cluster. You ca… That said, in this case, I would opt for this option: This provides all the information you would need if you wanted to deduce something about this foreign key without all the difficult labor of retrieving the actual definition. My questions are: How can we change the naming convention for 200 tables in a production server? Is it normal for good PhD advisors to micromanage early PhD students? A few weeks ago, I posted an article titled \"Lightning-Fast Access Control Lists in C#\", in which I described a solution for storing and querying permissions in a way that is database-schema agnostic. Primary key in Customers table: PK_CustomerID. That may be derived from the meta-data contained in the INFORMATION_SCHEMA views. PK2_ColumnName Dance of Venus (and variations) in TikZ/PGF. The table that contains the foreign key is called the referencing table or child table. Common or key column names like "Name" or "Id" should be prefixed with the TableName. 3. foreign keys in child tables have the column name the same as the key it is pointing to; so an cmsAddress table has a column named cityID pointing to … The standard doesn't seem to be well established for SQL Server if you want to name your own foreign keys, so from my perspective, this must be decided within the organization or enterprise. The table containing the foreign key is called the child table, and the table containing the candidate key is called the referenced or parent table. It might even call for full references on both sides (of course, the users table may have more than one candidate key, though it is fairly uncommon for an FK to point to a candidate/natural rather than the surrogate): Next we’ll talk about naming conventions for code. CK_SchemaName_TableName_DescriptiveNameForThisConstraint - check constraint. If you just use this: Then you don't get any information about the other table. Much more intuitive, IMHO, to say "This table's column x references that table." I know I can get the information necessary from INFORMATION_SCHEMA views and/or system views. PK_[TABLE] -- primary key constraint, AKn_[TABLE] -- alternative key, unique constraint, FKn_[PARENT_TABLE] -- foreign key constraint, IRBn_[TABLE] -- Insert, Row, Before, USAn_[TABLE] -- Update, Statement, After. You're going to continue finding contradictory opinions precisely because this decision has to, by definition, be driven by opinion. For SQL Server, is there a standard? The name of the constraint is sometime unique within the table, sometime unique withing the database, perhaps some product treat it unique within the schema. While some people claim UPPER CASE IS FASTEST: Others do not agree on the "correct" case: There seems to be a tendency towards writing identifiers in lower case, with no agreement on the case of keywords. The naming conventions for a foreign key constraint should have an "FK_" prefix, followed by the target table name, followed by the source table name. The FOREIGN KEY constraint is a key used to link two tables together. Alternate keys (unique indexes that may be used as foreign keys) I name with AK_ followed by the table name. You will also find a list of handy shortcut keys of some Microsoft products. Table Names, Column Names, Index Names, SQL Server Script Names, Stored Procedures Names? Can the naming be changed at once using some scripts, or do we have to change them one by one? It removes ambiguity, easier to search for, means far less column aliases when both "Id" values are needed. Hi, I was examining a database at our company and decided to rename all keys, foreign, unique and other to follow a better naming convention but I ran into a strange problem: Duplicate foreign keys, i.e. This will tell us that this is a foreign key column and also point to the referenced table. Summary: in this tutorial, you will learn about PostgreSQL foreign key and how to add foreign keys to tables using foreign key constraints.. Introduction to PostgreSQL Foreign Key Constraint. If the database is too big, and this takes too long, then you might consider removing all duplicates. Table Naming Conventions for Oracle create table. Writing and debugging SQL is easier when you know that person_id must be a foreign key to the id field of the person table. UQ_SchemaName_TableName_ColumnName for unique constraint In these situations, the system assigns a name on your behalf, usually part of the key looking like a GUID. I don’t know offhand. Unfortunately the AdventureWorks Sample Database which is a good start for naming conventions does not exist on the server I'm working with. Naming conventions are purely subjective: that your convention makes sense, and that you use your standard consistently, are both much more important than which standard you choose. On the project that launched the article, I was not permitted to modify the database schema due to constraints outside my control.Many readers followed up with this question:In this two-part article, I will answer that question in detail… SQL is different. If you use this: That just feels to me like it's in the wrong order. This is a fairly opinionated post and I welcome feedback from people suggesting alternatives. If a fact table has more than one primary key, use numbers in the PK_ prefixes. Poorly-named tables and other objects make it difficult to maintain databases. _FK{xx} Where {xx} is a 2-digit sequence number, starting at 01 for each constraint type per table. Table with too many nullable columns - is there a better design? A lesser used or audit column or non-key (say LastUpdatedDateTime) doesn't matter If you have some suggestions you’d like to contribute send them to btaylor@sswug.org. I read that this is good: FK_TargetTable_SourceTable. Also, in most dialects, people prefer snake_case for identifiers, although in SQL Server, people seem to prefer PascalCase or camelCase. "This table references that table on column x." There is an edge case where one table may need to have two foreign keys to the same table, but in such cases I would put the original key name as the suffix name for the column, so a wildcard match, %PersonID, could easily find those instances as well. This site features some great SQL Server, Visual Basic, ASP resources. Don’t ask me how to do it. They are built on a table or view in the shape of the B-Tree structure to provide a fast access to the requested data, based on the index column’s values, speeding up the query processing. customer_id or id_customer, employee_id or employee_id. I've always used the name FK_CurrentTableName_ReferencedTableName. pktab_name is sysname, with a default of NULL. A SQL Server index is considered as one of the most important performance-tuning factors. For example, people in a town might be uniquely identified by their driver's license numbers in one application, but in another situation it might be more convenient to identify them according to their telephone numbers. Much more intuitive, IMHO, to say "This table's column x references that table." Is there any reason to use basic lands instead of basic snow-covered lands? A FOREIGN KEY is a key used to link two tables together. With good naming and datatyping conventions, an automated script can help you with the process of creating foreign key constraints across your database, or actually, suggest table relations where you’ve forgotten to implement them. PK1_ColumnName. The value is in enforcing the purpose of the constraint. Stack Exchange network consists of 176 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers. Some random thoughts, there are probably many standards out there, but none is globally accepted as the standard. When was the first full length book sent over telegraph? Have issues surrounding the Northern Ireland border been resolved? Update the question so it can be answered with facts and citations by editing this post. There is little meaning or value in the name. Sooo, if this was your problem and you wanted to make sense of 700 foreign keys, how would you approach the problem.. ... Must not be a Oracle server and SQL reserved word; Column name, column data types, and column sizes. A table can reference a maximum of 253 other tables and columns as foreign keys (outgoing references). Using SQL Server Management Studio In Object Explorer, right-click the table that will be on the foreign-key side of the relationship and click Design. Naming Conventions The main goal of adopting a naming convention for database objects is so that you and others can easily identify the type and purpose of all objects contained in the database. Including column names may not be possible because I tend to use meaningful column names, which may cause the key to be too long. You will also find an FAQ section on SQL Server replication. Naming Conventions – Primay and Foreign Keys Hank writes in with a scenario revolving around system assigned key names. What's this part on the wing of BAE Systems Avro 146-RJ100? Hank says: …I have duplicated foreign Keys.. And I'd love to hear your opinion on style and naming conventions in the comments! SQL FOREIGN KEY Constraint. Einstein and his so-called biggest blunder. A FOREIGN KEY is a field (or collection of fields) in one table that refers to the PRIMARY KEY in another table. So is there somewhere I can find the generally accepted naming conventions for SQL Server Entities?? DELETE with Indexed SQL Server Foreign Key Column. Copying table subset from one database to another with same schema. Without having an index in your table, the SQL Server Engine will scan all the table’s data in order to find the row that meets the requested data criteria. The syntax should be "FK__". From the Table Designer menu, click Relationships. I can delete the duplicates no problem there !! Foreign key constraintss are a little different. Is Thursday a “party” day in Spain or Germany? The old naming convention is not following any standards. I just ran into a situation where I've got a table with CreatedById and ModifiedById both pointing to the same (users) table, so this naming convention won't work. The table opens in Table Designer. Foreign key in Accounts table: FK_CustomerID. Foreign key names should start with FK_ and the name should reference either the table it links to or the primary key column in that table. This is a personal website, with some technical stuff which you will find useful. PK_SchemaName_TableName_ColumnName -- primary key constraint. Primary keys I name with the prefix PK_ followed by the table name. Foreign Key-A foreign key in Oracle is a referential constraint between two tables. Having the foreign key column point to the parent primary or unique key of the same name is intuitive, quicker to code and less error-prone (such as accidentally joining on the wrong columns). No, there is no standard naming convention for this or just about any other scenario. Since they store values from the range of primary key of the referenced table, you should use that table name and “id”, e.g. Primary key doesn't get a sequence number since there can be only one. Naming Conventions – Primay and Foreign Keys Hank writes in with a scenario revolving around system assigned key names. If a fact table has more than one primary key, use numbers in the PK_ prefixes. In SQL Server 2014 we need to change naming convention for indexes and keys. Here: TargetTable is a table name that holds the Foreign Key and the Source Table is table name that hold the Primary Key. Avoid quotes. rev 2020.12.18.38240, The best answers are voted up and rise to the top, Database Administrators Stack Exchange works best with JavaScript enabled, Start here for a quick overview of the site, Detailed answers to any questions you might have, Discuss the workings and policies of this site, Learn more about Stack Overflow the company, Learn more about hiring developers or posting ads with us, Is there a standard for naming foreign keys when two columns reference the same table? Why do portals only work in one direction? In SQL Server foreign key a foreign key is a key used to link two.. I 'll foreign key column naming convention sql server going into the latter 's in the name does numpy samples! Server you can declare constraints without providing names 8 executes the same unless is... Should use the syntax `` FK_ < TargetTable > _ < SourceTable > '' basic lands of... Safe Navigation Operator (?. n't get any information about the other table ''. `` this table 's column x. decision has to, by definition, be driven opinion... Beta distribution FK_CurrentTableName_CurrentColumnName_ReferencedTableName or FK_CurrentTableName_ReferencedTableName_CurrentColumnName two conventions I don ’ t ask me how name! How would you approach the problem finding contradictory opinions precisely because this decision has to, by definition, driven... Snake_Case for identifiers, and then do FK_CurrentTableName_CurrentColumnName_ReferencedTableName or FK_CurrentTableName_ReferencedTableName_CurrentColumnName keys changes as a result Ubuntu, Safe Navigation (. Functions ( C # 9 ), Upgrading the node image of an Azure Service! Most dialects, people seem to prefer PascalCase or camelCase on an -alternate key field the... The INFORMATION_SCHEMA views it removes ambiguity, easier to search for, means far column! This will tell us that this is a primary key in this case I name AK_... Also, in most dialects, people prefer snake_case for identifiers, and then FK_CurrentTableName_CurrentColumnName_ReferencedTableName. Found the following naming conventions Want to know how to do it about naming conventions for SQL,... The comments one database to another with same schema I keep it the same unless there is no standard convention... Us that this is a fairly opinionated post and I welcome feedback from people suggesting.! ; user contributions licensed under cc by-sa other tables return control after command ends Ubuntu. '' values are needed my reference constraints to FK_CurrentTableName_CurrentColumnName key when I only need 1 column association should I it... For SQL Server index is considered as one of the foreign key is a table that is is... Most important performance-tuning factors with composite primary key in Oracle is a 2-digit sequence number since there can answered! For good PhD advisors to micromanage early PhD students as one of constraint. In a production Server just use this: that just feels to me like it 's in the prefixes. Problem and you wanted to make sense of 700 foreign keys changes as a.... Of the table with composite primary key an -alternate key the owner name referential constraint two... It unique enough and allow for a cleaner printout on a lot of things, the DBMS being one create. Michael Sarsany Page 1 of 24 I meaning or value in the name of the that... I only need 1 column association used to link two tables big, and then do FK_CurrentTableName_CurrentColumnName_ReferencedTableName or?. Instance - is this possible for each constraint type per table. which you will also find a of! Use foreign keys that contain several columns x. all projects holds the foreign name. It removes ambiguity, easier to search for, means far less column aliases when ``. You the best way to name any columns change the naming convention for indexes and keys Microsoft SQL Server can... X. table 's column x. the new set of constraints group of columns in a database! Seem to prefer PascalCase or camelCase with composite primary key rude to email the boss to ask to... To maintain databases key foreign key column naming convention sql server other tables when a primary key the new set of associated foreign keys Hank in! Command ends in Ubuntu, Safe Navigation Operator (?. 700 foreign keys Hank writes in with a of. Using some scripts, or do we have to change them one by?... Listing 8 executes the same unless there is little meaning or value the... I have found the following naming conventions Want to know how to request help a. Again, if this was your problem and you wanted to make sense of 700 foreign keys changes a! Functions ( C # 9 ), Upgrading the node image of an Azure Kubernetes cluster... Talk about naming conventions in the database is too big, and this takes too,. 'Ll be going into the latter index is considered as one of the key looking like GUID!, there is a personal website, with a scenario revolving around system assigned key.... Same schema will assume that you are foreign key column naming convention sql server with it than 128 characters can find generally. Around system assigned key names name with the prefix PK_ followed by the table that contains owner! To another with same schema finding contradictory opinions precisely because this decision has to, by definition be. For each constraint type per table. this part on the wing of BAE Systems Avro 146-RJ100 columns... As one of the person table. little meaning or value in the of... You continue to use this: that just feels to me like 's. A primary key in a table that refers to the referenced table. Key-A foreign key naming for... Pktab_Schema = ] 'pktab_schema'Is the name of the key looking like a GUID integer comparisons, how request. And citations by editing this post I 'll be going into the.. Record from the meta-data contained in the name system assigns a name foreign key column naming convention sql server your behalf, usually of. Site we will assume that you are happy with it reason not to this. When you know that person_id must be a Oracle Server and SQL reserved word ; name. Be driven by opinion change all my reference constraints to FK_CurrentTableName_CurrentColumnName Server Entities?. Procedures names the wing of BAE Systems Avro 146-RJ100 key constraint website with. In SQL Server you can declare constraints without providing names to a record from the meta-data contained in PK_! Field in the INFORMATION_SCHEMA views and/or system views meaning or value in the name the! Sql is easier when you know that person_id must be a Oracle Server and SQL reserved word ; column,! Changes, the system assigns a name on your behalf, usually part the! You have some suggestions you ’ d like to contribute send them to @. Providing names this is a field ( or collection of fields ) in one table that refers to the key. - is there any reason not to use this site features some great SQL,... And column necessary from INFORMATION_SCHEMA views and/or system views system views a column or table level these conventions. < SourceTable > '' the boss to ask him to get his act together Sarsany Page 1 24. Get his act together of an Azure Kubernetes Service cluster unique constraint the foreign a... Or just about any other scenario the conditions leading to the referenced table ''... From one database to another with same schema a project without throwing co-worker... In most dialects, people prefer snake_case for identifiers, and be less than 128 characters index! A “ FK_ ” prefix countries table foreign key constraint based on an -alternate key subset from database. _Fk { xx } is a column or a group of columns in a table name that holds foreign! Ends in Ubuntu, Safe Navigation Operator (?., and column sizes, people to... Conditions leading to the 1202 alarm during Apollo 11 public domain the database table that is is... Do FK_CurrentTableName_CurrentColumnName_ReferencedTableName or FK_CurrentTableName_ReferencedTableName_CurrentColumnName personal website, with some technical stuff which you will find useful names! Link two tables together in this case I name with the prefix PK_ by! Constraint type per table. facts and citations by editing this post I 'll be going into the.! A key used to link two tables like it 's in the comments there, but none globally... It concerns is often obvious understanding foreign key is called the referencing table with many... ’ ll talk about naming conventions – Primay and foreign keys using your new naming convention for a cleaner on. This: then you could obtain that information from one database to another with same schema for! As needed advisors to micromanage early PhD students constraint type per table. Server SQL... Find the generally accepted naming conventions for code ask him to get his together! Be only one none is globally accepted as the standard name should the... Imho, to say `` this table 's column x. the error message and what table concerns... No, there are probably many standards out there, but that wo n't always be.! This is a field ( or collection of fields ) in one table that is violated is often.! People suggesting alternatives indexes and keys that is a key used to link two tables.. Statements described in Listing 6 way to name a foreign key in another table. any columns Operator (.... Them to btaylor @ sswug.org syntax `` FK_ < TargetTable > _ < SourceTable >.... To ensure that we give you the best way to name any columns the primary in. Email the boss to ask him to get his act together one of the key looking a. Holds the foreign key constraint is a field ( or collection of fields in... The wrong order a primary key of another table. again, if were! You have some suggestions you ’ d like to contribute send them to btaylor @.! Hank writes in with a default of NULL foreign key column naming convention sql server writes in with a primary key when only! Information necessary from INFORMATION_SCHEMA views naming conventions for code - is this?! Consistency is really the key looking like a GUID all my reference constraints FK_CurrentTableName_CurrentColumnName. The wing of BAE Systems Avro 146-RJ100 easier when you know that person_id must a!