es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

“Knex múltiples claves primarias en una relación de identificación donde el ID es una columna de incremento automático”

Intenté utilizar cada lógica que tenía en mente para resolver este problema, pero esta es la única solución que funcionó.

export async function up(knex: Knex): Promise {
knex.schema.createTable(‘documents’, (tabla) => {
tabla.integer(‘id’).unsigned().notNullable().unique()
tabla.string(‘path’)
tabla.enum(‘tipo’, [‘CPF’, ‘RG’])
tabla.integer(‘id_Usuario’).unsigned().notNullable()
tabla.foreign(‘id_Usuario’).references(‘id’).inTable(‘usuarios’)
tabla.primary([‘id’, ‘id_Usuario’])
})

knex.schema.alterTable(this.tableName, (tabla) => {
tabla.increments('id', { primaryKey: false }).alter()
})
}

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Pregunta:

    ¿Qué hace este código?

    Respuesta:

    Este código crea una tabla llamada “documents” en una base de datos SQL utilizando knex.js. La tabla tiene columnas para “id” (un número entero sin signo que no es nulo y debe ser único), “path” (una cadena de caracteres), “type” (un enum con valores “CPF” o “RG”), y “user_id” (un número entero sin signo que no es nulo y hace referencia a la columna “id” de la tabla “users”). La clave principal de esta tabla es una clave primaria compuesta por las columnas “id” y “user_id”. También se incluyen columnas para las marcas de tiempo en la tabla.

    Luego, el código altera la columna “id” para que sea una clave primaria con auto-incremento, lo que significa que se incrementará automáticamente con cada nueva fila agregada a la tabla.

Comments are closed.