[RUBY] Changez la clé primaire de la base de données (MySQL) sur n'importe quelle colonne.

en premier…

C'est la clé primaire (colonne : id) qui est toujours créée lorsqu'une table est créée dans la base de données, mais par défaut elle est enregistrée à partir de la première dans l'ordre dans lequel elle a été enregistrée dans l'enregistrement. Cependant, si vous regardez les services existants, vous pouvez voir que le numéro de produit est inclus dans l'URL ou que les informations utilisateur peuvent être consultées sur des pages telles que https: // www.uniqlo.com / jp / ja / products / E428313-000. Le nom d'utilisateur peut être un paramètre. Par conséquent, dans cet article, je vais vous présenter comment changer la clé primaire en une colonne arbitraire dans la base de données (MySQL).

Comment changer la clé primaire de la base de données (MySQL) en n'importe quelle colonne

db/migrate/_Fichier de migration.rb


class ● ● ● < ActiveRecord::Migration[5.2]
  def change
    create_table :nom de la table, id: false, primary_key: :Le nom de la colonne doit être la clé primaire|t|
      # `id: false`A cette table`:id`Ne créez pas de colonnes. C'est une description.
      # `primary_key:`Spécifiez le nom de la colonne comme clé primaire.
      t.timestamps
    end
  end
end

app/models/Nom du modèle.rb


nom du modèle de classe< ApplicationRecord
  self.primary_key = "Le nom de la colonne doit être la clé primaire"
    #En faisant cette description dans le fichier modèle, la colonne qui sera la clé primaire (clé primaire) est spécifiée.
end

Journal du serveur


Parameters: {"id"=>"valeur"}
SELECT  `nom de la table`.* FROM `nom de la table` WHERE `nom de la table`.`Nom de la colonne comme clé primaire` =Valeur LIMITE 1`

Et vous pouvez voir que la valeur qui a été utilisée comme clé primaire est lue correctement.

Recommended Posts

Changez la clé primaire de la base de données (MySQL) sur n'importe quelle colonne.
[Ruby on Rails] Comment changer le nom de la colonne
[Rails] Comment changer le nom de colonne de la table
[Ruby on Rails] De la construction de MySQL au changement de base de données
Comment changer dynamiquement le nom de la colonne acquis par MyBatis
Basculer dynamiquement la base de données à laquelle se connecter
Changer la base de données de SQLite en MySQL
[Rails] Comment créer une table, ajouter une colonne et changer le type de colonne
Ajouter une clé externe à la colonne avec migrate
Si vous utilisez Android Room et que vous souhaitez modifier la définition de colonne
Demandez à Sota de revenir sur les valeurs de la base de données
Changer le fuseau horaire du conteneur https-portal en JST
Comment effacer la base de données lors de la recréation de l'application
Comment générer une clé primaire à l'aide de @GeneratedValue
[Java / PostgreSQL] Connectez l'application WEB à la base de données
Connexion DataSource de WebSphere à MySQL (changement de propriété DataSource?)