在我的应用程序中,我进行了一些更改并将它们上传到测试服务器.因为我无法访问服务器数据库,所以我运行ALTER命令对其进行更改.
使用方法我在服务器上运行以下命令:
ALTER TABLE `blahblahtable` ADD COLUMN `newcolumn` INT(12) NOT NULL
Run Code Online (Sandbox Code Playgroud)
之后,我发现表的所有数据都已删除.现在表格是空白的.
所以我需要改变表而不删除他的数据.有没有办法做到这一点?
我创建了一个基于另一个视图和一个表的视图.我想添加varchar类型的新列.我确实喜欢下面,但是语法错误?我是SQL的新手,所以,无法理解
ALTER VIEW [dbo].[MyView]
ADD New_Col varchar(10) null
GO
Run Code Online (Sandbox Code Playgroud) 我有一个包含不到 5000 万行的表。它达到了 INT 的限制 (2147483647)。目前该表尚未被写入。
我计划将 ID 列从 INT 更改为 BIGINT。我正在使用 Rails 迁移通过以下迁移来执行此操作:
def up
execute('ALTER TABLE table_name MODIFY COLUMN id BIGINT(8) NOT NULL AUTO_INCREMENT')
end
Run Code Online (Sandbox Code Playgroud)
我已经在 2000 行的数据集上进行了本地测试,效果很好。在 5000 万条上运行ALTER TABLE命令应该没问题,因为目前该表没有被使用?
我想在运行迁移之前进行检查。任何意见将不胜感激,谢谢!
我正在使用Spring + JPA + Hibernate开发一个网站.在持久性配置(JPA + Hibernate)中,我将HibernateJpaVendorAdapter的generateDdl属性设置为true,实际上新实体正确地在DB中创建新表.
但是,一旦创建了表,如果我向实体添加一个属性,我希望HibernateJpaVendorAdapter可以改变表并添加列.这种情况并没有发生,这很奇怪,因为在Java AbstractJpaVendorAdapter的setGenerateDdl方法文档中有:"设置是否在EntityManagerFactory初始化之后生成DDL,创建/ 更新所有相关表."
JPA + Hibernate配置:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${db.driverClassName}" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.username}" />
<property name="password" value="${db.password}" />
</bean>
<bean id="jpaAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="databasePlatform" value="org.hibernate.dialect.MySQL5Dialect" />
<property name="showSql" value="${db.showSql}" />
<property name="generateDdl" value="${db.generateDdl}" />
</bean>
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="jpaVendorAdapter" ref="jpaAdapter" />
<property name="jpaProperties">
<props>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
<property name="dataSource" ref="dataSource" />
</bean>
Run Code Online (Sandbox Code Playgroud)
persistence.xml中:
<?xml version="1.0" encoding="UTF-8"?>
<persistence
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" …Run Code Online (Sandbox Code Playgroud) 我想在我的桌子上运行它:
ALTER TABLE table_name MODIFY col_name VARCHAR(255)
Run Code Online (Sandbox Code Playgroud)
但我的桌子很大,它的行数超过6500万(6500万).现在,当我执行时,执行此命令需要将近50分钟.改变表的更好方法是什么?
我有一个名为enum列的表action.目前允许的值是:
act1,act2,act3,act4.我想要act3和act4被删除,我的表的当前状态不包含任何行act3或act4.
当我尝试使用新的值集修改列时,它会抛出错误
Data Truncated for column action.
请建议如何删除所需的值.
我有一张儿童桌。在创建表时使用 ON DELETE CASCADE 和外键。
子表或父表中都没有记录。
我希望主键和外键保持原样,但只想从子表中删除 CASCADING 选项。
无论如何我可以改变那个子表。
谢谢你。
alter table tablename rename column zl_divn_nbr to div_loc_nbr;
Run Code Online (Sandbox Code Playgroud)
执行以上语句时出错。请帮忙。
SQL Error: ORA-54032: column to be renamed is used in a virtual column expression
54032. 0000 - "column to be renamed is used in a virtual column expression"
*Cause: Attempted to rename a column that was used in a virtual column
expression.
*Action: Drop the virtual column first or change the virtual column
expression to eliminate dependency on the column to be renamed
Run Code Online (Sandbox Code Playgroud) 我正在使用PDO和PHP创建一个新数据库,然后创建一个具有该数据库权限的新用户.如果其中一个失败,我想重命名数据库和用户,以便以后删除它们并且名称可用.
是否可以使用ALTER DATABASE重命名mysql数据库?
我有一个角色:
CREATE ROLE x LOGIN
ENCRYPTED PASSWORD '....'
SUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
Run Code Online (Sandbox Code Playgroud)
该角色已经创建。
我想修改为:
NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
Run Code Online (Sandbox Code Playgroud)
将 更改SUPERUSER 为NOSUPERUSER;
不做就可以做吗Drop role?
alter ×10
mysql ×5
database ×3
sql ×3
cascade ×1
constraints ×1
enums ×1
hibernate ×1
oracle ×1
pdo ×1
php ×1
postgresql ×1
sql-server ×1
superuser ×1
view ×1