[RUBY] Ändern Sie den Primärschlüssel der Datenbank (MySQL) in eine beliebige Spalte.

zunaechst…

Es ist der Primärschlüssel (: id Spalte), der immer erstellt wird, wenn eine Tabelle in der Datenbank erstellt wird. Standardmäßig wird sie jedoch ab dem ersten in der Reihenfolge registriert, in der sie im Datensatz registriert wurde. Wenn Sie sich jedoch die vorhandenen Dienste ansehen, sehen Sie, dass die Produktnummer in der URL enthalten ist oder dass die Benutzerinformationen auf Seiten wie "https: // www.uniqlo.com / jp / ja / products / E428313-000" angezeigt werden können. Der Benutzername kann ein Parameter sein. Daher werde ich in diesem Beitrag vorstellen, wie der Primärschlüssel in eine beliebige Spalte in der Datenbank (MySQL) geändert wird.

So ändern Sie den Primärschlüssel der Datenbank (MySQL) in eine beliebige Spalte

db/migrate/_Migrationsdatei.rb


class ● ● ● < ActiveRecord::Migration[5.2]
  def change
    create_table :Tabellenname, id: false, primary_key: :Spaltenname als Primärschlüssel tun|t|
      # `id: false`An diesem Tisch`:id`Erstellen Sie keine Spalten. Es ist eine Beschreibung.
      # `primary_key:`Geben Sie den Spaltennamen als Primärschlüssel an.
      t.timestamps
    end
  end
end

app/models/Modellname.rb


Name des Klassenmodells< ApplicationRecord
  self.primary_key = "Spaltenname als Primärschlüssel"
    #Durch diese Beschreibung in der Modelldatei wird die Spalte angegeben, die der Primärschlüssel (Primärschlüssel) sein wird.
end

Serverprotokoll


Parameters: {"id"=>"Wert"}
SELECT  `Tabellenname`.* FROM `Tabellenname` WHERE `Tabellenname`.`Spaltenname als Primärschlüssel` =Wert LIMIT 1`

Und Sie können sehen, dass der Wert, der als Primärschlüssel verwendet wurde, richtig gelesen wird.

Recommended Posts

Ändern Sie den Primärschlüssel der Datenbank (MySQL) in eine beliebige Spalte.
[Ruby on Rails] So ändern Sie den Spaltennamen
[Rails] So ändern Sie den Spaltennamen der Tabelle
[Ruby on Rails] Von der MySQL-Konstruktion zum Datenbankwechsel
So ändern Sie dynamisch den von MyBatis erfassten Spaltennamen
Wechseln Sie dynamisch die Datenbank, zu der eine Verbindung hergestellt werden soll
Ändern Sie die Datenbank von SQLite in MySQL
[Schienen] So erstellen Sie eine Tabelle, fügen eine Spalte hinzu und ändern den Spaltentyp
Fügen Sie der Spalte mit der Migration einen externen Schlüssel hinzu
Wenn Sie Android Room verwenden und die Spaltendefinition ändern möchten
Bitten Sie Sota, die Werte in der Datenbank zurückzusprechen
Ändern Sie die Zeitzone des https-Portal-Containers in JST
So löschen Sie die Datenbank beim Neuerstellen der App
So generieren Sie einen Primärschlüssel mit @GeneratedValue
[Java / PostgreSQL] Verbinden Sie die WEB-Anwendung mit der Datenbank
DataSource-Verbindung von WebSphere zu MySQL (Änderung der DataSource-Eigenschaften?)