¿Es esto posible en MySql? ¿Puedo tener una clave principal autoincrementada, con el prefijo de una letra, algo así como R1234, R1235, R1236 ... ect?MySql autoincrementando tecla principal alfanumérica?
Respuesta
Lo que puedes hacer es almacenar la llave como dos columnas. Un prefijo char y un int incremental automático, ambos agrupados para la clave principal.
CREATE TABLE myItems (
id INT NOT NULL AUTO_INCREMENT,
prefix CHAR(30) NOT NULL,
PRIMARY KEY (id, prefix),
...
Tenga en cuenta que esto solo funciona para MyISAM, no para los tipos de tabla InnoDB. –
Solo necesita una letra como prefijo, es decir, R123, por lo que debe usar CHAR (1) en lugar de CHAR (30) para ahorrar espacio. Si necesitaras dos letras como prefijo, es decir, RG123, deberías haber usado CHAR (2). –
Evitaría la clave compuesta si el protagonista será constante. Identificar un registro con un par de variables se torna un poco complicado en el futuro. –
puede hacerlo con dos campos como este. pero no puedes hacerlo con un campo que yo sepa.
create table foo (
code char,
id int unsigned not null auto_increment
primary key(id,code)
);
No. Pero para tablas MyISAM puede crear un índice de varias columnas y poner campo AUTO_INCREMENT en la columna secundaria, por lo que tendrá más o menos la misma que está pidiendo:
CREATE TABLE t1 (prefix CHAR(1) NOT NULL, id INT UNSIGNED AUTO_INCREMENT NOT NULL,
..., PRIMARY KEY(prefix,id)) Engine = MyISAM;
INSERT INTO t1(prefix) VALUES ('a'),('a'),('b'),('b');
SELECT * FROM t1;
a 1
a 2
b 1
b 2
Puede obtener más detalles de here Nota: no va a funcionar para el motor INNODB
- 1. mysql incremento automático tecla principal que se está agotando
- 2. ¿Tecla principal nativa o generada automáticamente?
- 3. ¿Cómo hacer que una tecla principal comience desde 1000?
- 4. Formateo de cadena alfanumérica
- 5. Clasificación alfanumérica con LINQ
- 6. MySQL clave principal de multicolumna
- 7. entrada MySQL duplicado para la tecla ACTUALIZAR
- 8. MySQL 1062 - Duplicar entrada '0' para la tecla 'primaria'
- 9. Cómo ordenar número en alfanumérica
- 10. ordenando una matriz php alfanumérica
- 11. Clave principal MySQL UUID: ¿generada por PHP o por MySQL?
- 12. Mysql - Agregar auto_increment a la clave principal
- 13. MySQL - usando String como clave principal
- 14. Tamaño de clave principal/externa de MySQL?
- 15. Clave principal de dos columnas en MySQL
- 16. Restablecer la clave principal en mysql?
- 17. Cómo obtener la próxima identificación alfanumérica basada en el valor existente de MySQL
- 18. ¿Cómo incrementar una cadena alfanumérica en PHP?
- 19. Sanitize una cadena con repetición no alfanumérica
- 20. jQuery: ¿tecla para la tecla TAB?
- 21. Diferenciar entre tecla presionada y tecla mantenida
- 22. MySQL: Determinar la tabla de clave principal dinámicamente
- 23. mysql LOAD DATA INFILE con autoincremento de la clave principal
- 24. SQL: establecer la columna existente como clave principal en MySQL
- 25. Subconsulta de MySQL con variable de datos de consulta principal
- 26. ¿La clave principal está indexada automáticamente en MySQL?
- 27. MySQL LOAD DATA INFILE - Cargando un archivo sin clave principal
- 28. MySQL - Usar clave externa como clave principal también
- 29. Clave principal grande: 1+ mil millones de filas MySQL + InnoDB?
- 30. Vistas de MySQL en Navicat: cómo definir 'clave principal'?
No es un experto en MySQL en absoluto, pero es posible que desee comprobar si es compatible con las secuencias. – Limey
¿Cuál es el propósito? Seguro que parece que estás violando una regla bastante básica de diseño de bases de datos. Una columna solo debe contener una sola información. Concatenar alfa-numéricos como ese es a menudo una señal de que esta regla de normalización está siendo violada. No siempre, pero por lo general. –