Что значит ошибка синтаксиса в инструкции create table

Your DDL statement, with the field type substitutions @Mureinik suggested, works in Access 2010, but only if you execute it from ADO:

Create table Customers (
    customerid              numeric(10) PRIMARY KEY,
    First_name              varchar(100),
    last_name               varchar(100), 
    house_number            numeric(10),
    street                  numeric(10),  
    postcode                numeric(5),
    home_phone_number       numeric(10),
    mobile_phone_number     numeric(10),  
    email_address           varchar(100),
    DOB                     datetime
    ); 

I loaded the statement into a string variable, strCreate, and executed it like this …

CurrentProject.Connection.Execute strCreate

CurrentProject.Connection is an ADO object.

That statement will throw a syntax error when executed via DAO …

CurrentDb.Execute strCreate  ' <-- "Syntax error"

If you’re executing the statement from the Access query designer, that also uses DAO and the statement will fail.

Although the statement executed successfully from ADO, I’m unsure the resulting data types for those Numeric() fields are what you actually want. I’m not accustomed to seeing Decimal field type used for a primary key. More often, people choose AutoNumber, which is based on Long Integer. (But I’m not saying Decimal is a bad choice if that’s what you really want.)

Customers table in Table Design view

Мульти-тенантные БД с PostgreSQL Row Security

Codd 23.04.2025

Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .

Реализация конвейеров машинного обучения с Python и Scikit-learn

AI_Generated 23.04.2025

Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .

Контроллеры Kubernetes Ingress: Сравнительный анализ

Mr. Docker 23.04.2025

В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .

Оптимизация кода Python с Cython и Numba

py-thonny 23.04.2025

Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .

Микросервис на Python с FastAPI и Docker

ArchitectMsa 23.04.2025

В эпоху облачных вычислений и растущей сложности программных продуктов классическая монолитная архитектура всё чаще уступает место новым подходам. Микросервисная архитектура становится фаворитом. . .

Создаем веб-приложение на Vue.js и Laravel

Reangularity 23.04.2025

Выбор правильного технологического стека определяет успех веб-проекта. Laravel и Vue. js формируют отличную комбинацию для создания современных приложений. Laravel — это PHP-фреймворк с элегантным. . .

Максимальная производительность C#: Span<T> и Memory<T>

stackOverflow 22.04.2025

Мир высоконагруженных приложений безжалостен к неэффективному коду. Каждая миллисекунда на счету, каждый выделенный байт памяти может стать причиной падения производительности. Разработчики на C#. . .

JWT аутентификация в Java

Javaican 21.04.2025

JWT (JSON Web Token) представляет собой открытый стандарт (RFC 7519), который определяет компактный и самодостаточный способ передачи информации между сторонами в виде JSON-объекта. Эта информация. . .

Спринты Agile: Планирование, выполнение, ревью и ретроспектива

EggHead 21.04.2025

Спринты — сердцевина Agile-методологии, позволяющая командам создавать работающий продукт итерационно, с постоянной проверкой гипотез и адаптацией к изменениям. В основе концепции спринтов лежит. . .

Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров

Programma_Boinc 21.04.2025

Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров.

3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . .


Проблема с типами данных в Access

От:

Garbager

 
Дата:  07.09.06 10:11
Оценка:

У меня следующая проблема. Подключаюсь к базе данных Acces через ODBC. Средствами ODBC пытаюсь в БД через запрос создать таблицу. Почему-то возникает ошибка при создании таблицы, содержащей поле типа TINYINT. Например:
CREATE TABLE A (ID INTEGER PRIMARY KEY, N TINYINT)
С целыми типами SMALLINT и INTEGER прокатывает, а с TINYINT — нет. Почему?


Re: Проблема с типами данных в Access

От:

Garbager

 
Дата:  07.09.06 12:00
Оценка:

Еще вопрос: где можно скачать описание стандартов SQL92 и SQL99. Нигде не могу найти…


Re: Проблема с типами данных в Access

От:

wildwind

Россия

 
Дата:  07.09.06 12:31
Оценка:

Здравствуйте, Garbager, Вы писали:

G>CREATE TABLE A (ID INTEGER PRIMARY KEY, N TINYINT)

G> С целыми типами SMALLINT и INTEGER прокатывает, а с TINYINT — нет. Почему?

Попробуй синонимы — INTEGER1, BYTE. Попробуй также через ADO — может быть драйвер не пропускает неизвестный ему тип.


Re[2]: Проблема с типами данных в Access

От: Аноним

 
Дата:  11.09.06 06:09
Оценка:

Здравствуйте, wildwind, Вы писали:
W>Попробуй синонимы — INTEGER1, BYTE. Попробуй также через ADO — может быть драйвер не пропускает неизвестный ему тип.

Синонимы мне использовать нельзя, необходимо придерживаться SQL92.


Re: Проблема с типами данных в Access

От:

Garbager

 
Дата:  11.09.06 06:24
Оценка:

Еще один косяк: не прокатывают запросы на создание таблиц с определением полей типа DECIMAL и NUMERIC, например:
CREATE TABLE A (
ID INTEGER NOT NULL,
N1 NUMERIC(5,1) NOT NULL,

PRIMARY KEY (ID)
)

или

CREATE TABLE A (
ID INTEGER NOT NULL,
N1 DECIMAL(5,1) NOT NULL,

PRIMARY KEY (ID)
)

В первом случае сообщение драйвера: «Ошибка синтаксиса в инструкции CREATE TABLE».
Во втором случае сообщение драйвера: «Ошибка синтаксиса при определении поля».


Re[2]: Проблема с типами данных в Access

От:

Бенедикт

 
Дата:  11.09.06 07:30
Оценка:

Здравствуйте, Garbager, Вы писали:

G>Еще один косяк: не прокатывают запросы на создание таблиц с определением полей типа DECIMAL и NUMERIC, например:

G>CREATE TABLE A (
G> ID INTEGER NOT NULL,
G> N1 NUMERIC(5,1) NOT NULL,

G> PRIMARY KEY (ID)

G>)

G>или


G>CREATE TABLE A (

G> ID INTEGER NOT NULL,
G> N1 DECIMAL(5,1) NOT NULL,

G> PRIMARY KEY (ID)

G>)

G>В первом случае сообщение драйвера: «Ошибка синтаксиса в инструкции CREATE TABLE».

G>Во втором случае сообщение драйвера: «Ошибка синтаксиса при определении поля».

Это не косяк. Вот

обсуждение

Автор: Callisto
Дата: 01.06.06

.


Re: Проблема с типами данных в Access

От:

ZAMUNDA

Земля

для жалоб и предложений
Дата:  11.09.06 08:29
Оценка:

Здравствуйте, Garbager, Вы писали:

G> С целыми типами SMALLINT и INTEGER прокатывает, а с TINYINT — нет. Почему?

Посмотри Microsoft Access Data Types и там Limitations ещё есть.

Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков


Re[3]: Проблема с типами данных в Access

От: Аноним

 
Дата:  12.09.06 08:16
Оценка:


Re[2]: Проблема с типами данных в Access

От:

Garbager

 
Дата:  12.09.06 08:24
Оценка:

ZAM>Посмотри Microsoft Access Data Types и там Limitations ещё есть.

Спасибо!

  • Переместить
  • Удалить
  • Выделить ветку

Пока на собственное сообщение не было ответов, его можно удалить.

CREATE TABLE plan 
  ( 
     id                VARCHAR(30) NOT NULL, 
     name              VARCHAR(20), 
     amount            INT, 
     interval          INT, 
     currency          CHAR(3), 
     object            VARCHAR(20), 
     livemode          BOOLEAN, 
     interval_count    INT, 
     trial_period_days INT, 
     created           TIMESTAMP, 
     updated           TIMESTAMP, 
     deleted           TIMESTAMP, 
     PRIMARY KEY (id) 
  ); 

Produces

'ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'interval          INT, 
     currency          CHAR(3), 
     object            ' at line 6'

Doesn’t work. However if the ‘l’ at the end of ‘interval’ is removed. It works.

CREATE TABLE plan 
  ( 
     id                VARCHAR(30) NOT NULL, 
     name              VARCHAR(20), 
     amount            INT, 
     interva           INT, 
     currency          CHAR(3), 
     object            VARCHAR(20), 
     livemode          BOOLEAN, 
     interval_count    INT, 
     trial_period_days INT, 
     created           TIMESTAMP, 
     updated           TIMESTAMP, 
     deleted           TIMESTAMP, 
     PRIMARY KEY (id) 
  ); 

I don’t understand if this is a problem with attempting to use ‘interval’ and ‘interval_count’. What’s going on here.

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Таблетки цифран ст от чего они помогают инструкция
  • Швейная машинка чайка 142 м инструкция по эксплуатации читать с картинками
  • Проходной выключатель схема подключения фото инструкция
  • Хлоргексидиновые свечи инструкция по применению в гинекологии для женщин
  • Свечи гексикон инструкция по применению в гинекологии фото