102 votos

alter table add VARIAS columnas DESPUÉS de column1

Tengo que añadir varias columnas a una tabla, pero la posición de las columnas después de una columna lastname

He intentado hacer esto:

    ALTER TABLE `users` ADD COLUMN
(
`count` smallint(6) NOT NULL,
`log` varchar(12) NOT NULL,
`status` int(10) unsigned NOT NULL
) 
    AFTER `lastname`;

Me sale este error:

Usted tiene un error en la sintaxis de SQL; consulte el manual corresponde a la versión del servidor MySQL para el derecho de la sintaxis a utilizar cerca de ') DESPUÉS de la lastname' en la línea 7

¿Cómo puedo utilizar DESPUÉS en una consulta como esta? gracias.

207voto

Ayyappan Sekar Puntos 1835

Intente esto

ALTER TABLE users
ADD COLUMN `count` SMALLINT(6) NOT NULL AFTER `lastname`,
ADD COLUMN `log` VARCHAR(12) NOT NULL AFTER `count`,
ADD COLUMN `status` INT(10) UNSIGNED NOT NULL AFTER `log`;

compruebe la sintaxis de

26voto

user3106476 Puntos 141

Si desea agregar una columna después de campo específico, a continuación, la consulta de mysql es:

ALTER TABLE users
    ADD COLUMN count SMALLINT(6) NOT NULL
    AFTER lastname

Si quieres añadir varias columnas, entonces usted necesita para usar 'AGREGAR' comando cada vez para una columna. La consulta de mysql de la siguiente manera:

ALTER TABLE users
    ADD COLUMN count SMALLINT(6) NOT NULL,
    ADD COLUMN log VARCHAR(12) NOT NULL,
    ADD COLUMN status INT(10) UNSIGNED NOT NULL
    AFTER lastname

4voto

Damien_The_Unbeliever Puntos 102139

Si este es MySQL, entonces no es compatible. He aquí la sintaxis:

ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name
    [alter_specification [, alter_specification] ...]
    [partition_options]

alter_specification:
    table_options
  | ADD [COLUMN] col_name column_definition
        [FIRST | AFTER col_name ]
  | ADD [COLUMN] (col_name column_definition,...)
  | ADD {INDEX|KEY} [index_name]
        [index_type] (index_col_name,...) [index_option] ...

Y tenga en cuenta que AFTER sólo se admite para la columna única variante. Así que tendrás que escribir como independiente 3 ALTER declaraciones.1


1 O, mi general, SQL recomendación sería no utilizar AFTER en todo, pero no sé lo suficiente acerca de MySQL para saber si la columna de posiciones realmente hacer una diferencia. En general, en SQL, que se refieren a las columnas por su nombre, y por lo que su "posición" debería ser irrelevante.

3voto

Ahmed Puntos 189

Una posibilidad sería la de no preocuparse por el reordenamiento de las columnas en la tabla y simplemente modificar agregar las columnas. A continuación, cree una vista que tiene las columnas en el orden que queramos, suponiendo que el orden es verdaderamente importante. La vista puede ser fácilmente cambiado para reflejar cualquier orden que desee. Ya no puedo imaginar que el orden sería importante para programáticos de las aplicaciones, la vista debe ser suficiente para aquellos manual de consultas en la que podría ser importante.

0voto

Gaurav Singh Puntos 16

ALTER TABLE users AGREGAR COLUMNA COLUMN NAME TIPO DE DATO(TAMAÑO) DESPUÉS DE LA EXISTING COLUMN NAME;

Usted puede hacer esto con esta, trabajando muy bien para mí.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X