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.

Eliminar columna y agregar columna con valor predeterminado Amplificar graphql DynamoDB Appsync

Quiero eliminar toda una columna de una vez, si hay miles de datos eliminar uno por uno es muy lento, ¿hay alguna forma mejor de hacerlo?

Borrar esta columna:

Deleting this column

Y mi siguiente pregunta es, ¿cómo puedo agregar una nueva columna con un valor predeterminado después de haber borrado?

Es decir:

id | x | y | z

1 | A | B | C
2 | A | B | C
3 | A | B | C
4 | A | B | C

Si la tabla anterior tiene miles de datos, quiero eliminar “z” y agregar “newColumn” con el valor predeterminado de “D” como se muestra a continuación:

id | x | y | newColumn

1 | A | B | D
2 | A | B | D
3 | A | B | D
4 | A | B | D

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para eliminar una columna completa en DynamoDB, puedes utilizar la API UpdateTable y establecer los parámetros AttributeDefinitions y GlobalSecondaryIndexUpdates para eliminar la columna deseada. Aquí tienes un ejemplo de cómo eliminar la columna “z”:

    aws dynamodb update-table \
        --table-name <nombre-de-la-tabla> \
        --attribute-definitions AttributeName=z,AttributeType=S \
        --global-secondary-index-updates '[
            {
                "Delete": {
                    "IndexName": "<nombre-del-índice>",
                    "ProvisionedThroughput": {
                        "ReadCapacityUnits": 1,
                        "WriteCapacityUnits": 1
                    }
                }
            }
        ]'
    

    Ten en cuenta que debes reemplazar <nombre-de-la-tabla> y <nombre-del-índice> con los nombres reales de tu tabla e índice.

    Para añadir una nueva columna con un valor predeterminado después de eliminar la anterior, nuevamente puedes utilizar la API UpdateTable y establecer los parámetros AttributeDefinitions y GlobalSecondaryIndexUpdates para agregar la nueva columna. Aquí tienes un ejemplo de cómo agregar la columna “newColumn” con el valor predeterminado “D”:

    aws dynamodb update-table \
        --table-name <nombre-de-la-tabla> \
        --attribute-definitions AttributeName=newColumn,AttributeType=S \
        --global-secondary-index-updates '[
            {
                "Create": {
                    "IndexName": "<nombre-del-índice>",
                    "KeySchema": [
                        {
                            "AttributeName": "id",
                            "KeyType": "HASH"
                        }
                    ],
                    "Projection": {
                        "ProjectionType": "ALL"
                    },
                    "ProvisionedThroughput": {
                        "ReadCapacityUnits": 1,
                        "WriteCapacityUnits": 1
                    }
                }
            }
        ]' \
        --attribute-definitions AttributeName=newColumn,AttributeType=S \
        --global-secondary-index-updates '[
            {
                "Update": {
                    "IndexName": "<nombre-del-índice>",
                    "ProvisionedThroughput": {
                        "ReadCapacityUnits": 1,
                        "WriteCapacityUnits": 1
                    },
                    "AttributeUpdates": {
                        "newColumn": {
                            "Value": { "S": "D" }
                        }
                    }
                }
            }
        ]'
    

    Nuevamente, reemplaza <nombre-de-la-tabla> y <nombre-del-índice> con los nombres reales de tu tabla e índice. Este ejemplo asume que la columna “id” es la clave de partición. Puedes ajustar el parámetro KeySchema para que coincida con la clave primaria de tu tabla.</nombre-del-índice></nombre-del-índice></nombre-del-índice></nombre-del-índice></nombre-del-índice>

Comments are closed.