我试图通过使用Management Studio复制SQL Server 2008中的现有表来创建新表.现有表中不包含任何数据.我使用以下代码,但在AS附近收到错误语法错误.我不确定这里有什么问题.我是一个SQL新手,任何帮助将不胜感激.谢谢.
CREATE TABLE Drop_Centers_Detail
AS (Select * From Centers_Detail)
Run Code Online (Sandbox Code Playgroud) 我有一个数据库"temp"与表"A".我创建了新的数据库"temp2".我想将表"A"从"temp"复制到"temp2"中的新表.我尝试了这个语句,但它说我的语法不正确,这是声明:
CREATE TABLE B IN 'temp2'
AS (SELECT * FROM A IN 'temp');
Run Code Online (Sandbox Code Playgroud)
这是错误:
消息156,级别15,状态1,行2关键字"IN"附近的语法不正确.消息156,级别15,状态1,行3关键字"IN"附近的语法不正确.
谁知道这个问题是什么?
提前致谢,
格雷格
我有一个相当简单的表(原谅错误/愚蠢,我还在学习.为MySQL编写):
CREATE TABLE IF NOT EXISTS `userdata` (
`userid` UNSIGNED int(18446744073709551615) AUTO_INCREMENT,
`username` char(255) NOT NULL,
`password` char(255) NOT NULL,
`salt` char(255) NOT NULL,
`email` char(255) NOT NULL,
PRIMARY KEY(`userid`)
);
Run Code Online (Sandbox Code Playgroud)
我已经读过添加索引可以提高查询的性能,因为它不需要查看整个数据库.相反,它会查看索引并匹配数据(如果我错了,请纠正我).
我已经找到了如何创建一个足够好的索引,但不是我应该索引的索引.
我应该在用户名上有我的索引吗?电子邮件地址,用户ID或我尚未添加的某个字段?
我试过sqlSave()在RODBC,但它运行速度超慢.有没有其他方法可以做到这一点?
I want to create a table have(id,time) and time (timestamp without timezone) without milliseconds.
And I also want to insert the current time per default.
CREATE TABLE ddd (
id serial not null,
time timestamp without time zone default now()
);
Run Code Online (Sandbox Code Playgroud)
我有这个例子,不能创建customers_b.错误代码1005 /错误号:121.但是,如果我首先创建customers_b而不是customers_a,那么customers_a就是那个不会被创建的.
怎么了?为什么我不能将多个FK链接到PK'id_state'?谢谢!
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
DROP SCHEMA IF EXISTS `testdb` ;
CREATE SCHEMA IF NOT EXISTS `testdb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
USE `testdb` ;
-- -----------------------------------------------------
-- Table `testdb`.`state`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `testdb`.`state` ;
CREATE TABLE IF NOT EXISTS `testdb`.`state` (
`id_state` INT NOT NULL,
`abbr` CHAR(2) NOT NULL,
PRIMARY KEY (`id_state`),
UNIQUE INDEX `id_state_UNIQUE` (`id_state` ASC))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `testdb`.`customers_a`
-- ----------------------------------------------------- …Run Code Online (Sandbox Code Playgroud) 我有一个在一些用户之间共享的数据库,我想管理他们对此的权限.
我想授予创建新表的权限,以及访问(选择,插入,更新,删除)到该表的权限,对于没有数据库完全权限的用户(只有他对某些表具有SELECT权限) ).
所以,我执行了这个查询:
GRANT CREATE ON eh1 TO user1
Run Code Online (Sandbox Code Playgroud)
然后,当我使用该用户登录并尝试创建新表时,我收到此错误:
1142 - 对表'folan'的用户'user1'@'localhost'拒绝CREATE命令
这里有什么问题?我怎样才能做到这一点?
UPDATE
通过将命令更改为:
GRANT CREATE ON eh1.* TO user1
现在还有另一个问题,即user1无法选择或插入新创建的表中.原因是可以理解的,但有没有办法解决这个问题?
谢谢
我只是想删除表'what'如果它存在,然后在可能的情况下在单个查询中重新创建表'what'.
DROP TABLE IF EXISTS `whatever` ELSE
CREATE TABLE `whatever`
Run Code Online (Sandbox Code Playgroud)
任何的想法 ?
我正在尝试使用 Hive 查询使用现有表创建一个新表。
创建新表时,我想添加一个新列并为所有行插入当前时间戳。例如:
退出表:
|user_id|user_name|user_address|
|1001 |userName |address |
Run Code Online (Sandbox Code Playgroud)
新表:
|user_id|user_name|user_address|creation_date|
|1001 |userName |address | 123421342134|
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 JDBCTemplate 执行此查询。
我尝试过的:
Create table newTable Select * from existingtable;
Run Code Online (Sandbox Code Playgroud)
但这会复制使用旧值创建新表,我想在表创建过程中添加新列并插入值。
请帮忙。
我使用SYSTEM用户授予CREATE ANY TABLE用户TEST,但是当我尝试执行时
create table other.dummy ...
Run Code Online (Sandbox Code Playgroud)
我仍然得到ORA-01031: insufficient privileges
Oracle:授予在另一个模式中创建表?声称这应该有效。
我也尝试授予CREATE ANY INDEX因为该表具有 PK,因此包含索引,但这并没有改变任何内容。
GRANT ALL PRIVILEGES做到了这一点,但我更喜欢一些更有限的东西。
实际的CREATE TABLE说法是:
CREATE TABLE OTHER.DUMMY_ENTITY (
ID NUMBER GENERATED by default on null as IDENTITY PRIMARY KEY,
NAME VARCHAR2(30)
)
Run Code Online (Sandbox Code Playgroud)
除此之外我还需要授予哪些特权CREATE ANY TABLE?
create-table ×10
mysql ×5
sql ×2
sql-server ×2
dataframe ×1
grant ×1
hive ×1
hiveddl ×1
hiveql ×1
indexing ×1
jdbctemplate ×1
oracle ×1
permissions ×1
postgresql ×1
privileges ×1
r ×1
select ×1
sql-drop ×1
sql-grant ×1
ssms ×1
timestamp ×1
types ×1