# Primary key storing strings

**URL:** <https://www.ruby-forum.com/t/primary-key-storing-strings/119361>\
**Category:** Rails\
**Created:** [November 6, 2007, 12:04pm UTC](https://www.ruby-forum.com/t/primary-key-storing-strings/119361 "2007-11-06T12:04:30Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kless](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/cc9497/32.png) [@Kless](https://www.ruby-forum.com/u/Kless)\
**Post date:** [November 6, 2007, 12:04pm UTC](https://www.ruby-forum.com/t/primary-key-storing-strings/119361/1 "2007-11-06T12:04:30Z")

</div>

Can a ‘:primary\_key’ to store strings or has to be integers?

t.primary\_key :text\_code

---

<div class="post-metadata">

**Author:** ![Kless](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/cc9497/32.png) [@Kless](https://www.ruby-forum.com/u/Kless)\
**Post date:** [November 6, 2007, 12:35pm UTC](https://www.ruby-forum.com/t/primary-key-storing-strings/119361/2 "2007-11-06T12:35:30Z")

</div>

From a databases perspective, a string could easily be a primary key.  
What  
are you looking at acheiving, could you do it using  
validates\_uniquness\_of  
:xyz ?

Cheers,  
James

---

<div class="post-metadata">

**Author:** ![Kless](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/cc9497/32.png) [@Kless](https://www.ruby-forum.com/u/Kless)\
**Post date:** [November 6, 2007, 1:03pm UTC](https://www.ruby-forum.com/t/primary-key-storing-strings/119361/3 "2007-11-06T13:03:05Z")

</div>

James Brooks ha escrito:

> From a databases perspective, a string could easily be a primary key. What  
> are you looking at acheiving, could you do it using validates\_uniquness\_of  
> :xyz ?  
> No, I need a string as primary key. I hope to have not any problem.

Thanks

---

<div class="post-metadata">

**Author:** ![Kless](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/cc9497/32.png) [@Kless](https://www.ruby-forum.com/u/Kless)\
**Post date:** [November 6, 2007, 4:15pm UTC](https://www.ruby-forum.com/t/primary-key-storing-strings/119361/4 "2007-11-06T16:15:08Z")

</div>

In PSQL isn’t showed the primary key. I’m supposed that you have to  
exec the sql yourself to add the primary key constraint.

Conclussion: it’s better don’t go against rails’ standard practices.

---

<div class="post-metadata">

**Author:** ![Kless](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/cc9497/32.png) [@Kless](https://www.ruby-forum.com/u/Kless)\
**Post date:** [November 6, 2007, 1:54pm UTC](https://www.ruby-forum.com/t/primary-key-storing-strings/119361/5 "2007-11-06T13:54:05Z")

</div>

Solved!

Primary key for a string field of until 3 characters:

create\_table :cars, :id =\> false, :primary\_key =\> :alpha\_code do |t|  
t.string :alpha\_code, :limit =\> 3
